Last summer, Plaid started receiving feedback about duplicate transactions appearing in customers' accounts. The problem was traced back to a race condition in the reconciliation process of their Transactions product. This led to multiple sets of results for the same accounts being processed concurrently. A series of bugs were identified and fixed, including issues with scheduling updates and accessing queues. Lessons learned from this experience include ensuring correctness under concurrency, debugging service pipelines as a whole, considering all pieces when investigating problems, and making checklists for building distributed systems.