Playbook

Debugging Transaction Rollback Issues

How to find partial writes when multi-step database workflows fail mid-request.

Pattern

One write commits before a later step fails, leaving state that blocks retries or leaks user-visible records.

warningSymptoms

  • arrow_rightRetry says record already exists
  • arrow_rightFailed request leaves database rows
  • arrow_rightAudit or outbox state disagrees with primary data

searchWhere to look

  • arrow_rightTransaction helper boundaries
  • arrow_rightRepository calls outside callbacks
  • arrow_rightError handling paths
  • arrow_rightOutbox or audit writes

buildCommon fixes

  • arrow_rightMove related writes into one transaction
  • arrow_rightRollback on every thrown path
  • arrow_rightAdd failure injection tests
  • arrow_rightUse outbox patterns for side effects

Practice challenges

No ready practice incident is mapped yet.