Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
In process

Date

Authors

Reuben Roberts

Status

Done

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

    Jira Legacy
    serverSystem Jira
    serverId4c843cd5-e5a9-329d-ae88-66091fcfe3c7
    keyTIS21-6673
    , 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.

  • ~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.