A change deployed to production caused events to not be sent after appliances were registered in our system, affecting the indexing of our Xenon Search feature and making 180 assets unsearchable from their creation time (after 11:57 CET) until the incident resolution (17:25 CET).
Root Cause
The problematic change modified event emission in the appliance creation handler to occur synchronously. However, the context used for sending events had already been cancelled by a transactor at this stage, resulting in events not being emitted. Unit tests, although written to ensure correct event sending, used a mock transactor implementation that didn't accurately reflect the cancelling context behavior. Additionally, E2E tests for this handler didn't cover event sending.
Resolution
A fix was deployed to utilize the correct context, and a backfill of missing events was performed to rectify the issue.
Action Items