Date |
|
Authors | |
Status | In processDone |
Summary | The requests for a full data sync for new trainee profiles were not being processed, resulting in missing data (e.g. email address) in trainee profiles. |
Impact | Onboarding emails were not being sent (recorded as ‘FAILED’) since TSS had no record of some new trainee email addresses. |
...
Issue of large numbers of ‘failed’ onboarding emails reported to TSS team 7 Nov 2024.
...
5 Whys (or other analysis of Root Cause)
Onboarding notification emails were not sent because no trainee email address was available in TSS.
No trainee email address was available in TSS because it had not been sync’d from TIS.
Data had not been sync’d from TIS because no full-data request had been made from TSS, and the records in question had not been updated since the profile was created, which would have triggered a normal sync.
No full-data request had been made from TSS because the TSS sync service could not deserialize the messages instructing it to make the request.
The TSS sync service could not deserialize the messages because of a new message attribute was instructing it to deserialize to a non-available class.
The new message attribute was included as part of a major version update to the library component that handles messaging.
The breaking change was not detected by automated tests within individual service components, because it only impacts messaging between components, for which we have no automated tests.
The subsequent failures in production were not detected because of a lack of error detection and reporting for the specific message queue and the sync component.
...
Resolution
tis-trainee-details configured to omit the JavaType attribute in messages it sends.
...
Timeline
All times GMT unless otherwise indicated.
10:30 As part of the discussion around
, it was mentioned that unusually large numbers of emails for trainee onboarding were being recorded as ‘failed’ due to no email address, but that the trainees in question had email addresses in TIS.Jira Legacy server System Jira serverId 4c843cd5-e5a9-329d-ae88-66091fcfe3c7 key TIS21-6673 ~21:00 redrive all production data to ensure trainees have email address and other profile data populated.
~13:00 fix to tis-trainee-details to remove JavaType attribute of profile-created messages
~13:00 DLQ and Cloudwatch alarm for profile-created queues
~11:00 Sentry configuration corrected.
...
Action Items
Action Items | Owner | |
---|---|---|
As per ticket | Various | Done |
See also:
...
Lessons Learned
Integration tests over microservices may be a bit of an anti-pattern, but alerts and DLQs are essential to catch unobserved errors.