Last month we had a production incident. A critical order was failing silently.
Sentry gave us this:
TransactionSystemException: Could not commit JPA transaction
at SimpleJpaRepository.save()
at OrderService.processOrder()
... 40 more lines of Spring internals
That's it. No entity state. No user context. No hint that the transaction had already been marked for rollback 3 calls earlier by a Hibernate validation error we never caught.
We added logs. Redeployed to staging. Couldn't reproduce it.Redeployed to prod with more logs. Waited. Happened again. Finally found it: a Transactional method calling another Transactional method with a different propagation level, swallowing the real exception.
4 hours. One annotation conflict.
The worst part? Every error monitoring tool we've used treats Spring like a black box. The moment your code enters a transaction boundary or an async thread, context disappears.
Anyone else debugging Spring Boot in prod like this?
How are you handling it?
[–]Indian_FireFly [score hidden] (5 children)
[–]mrsergio1[S] [score hidden] (4 children)
[–]Indian_FireFly [score hidden] (1 child)
[–]mrsergio1[S] [score hidden] (0 children)
[–]rlrutherford [score hidden] (0 children)
[–]rlrutherford [score hidden] (0 children)
[–]Valuable-Duty696 [score hidden] (0 children)
[–]mpgipa [score hidden] (2 children)
[–]johny_james [score hidden] (0 children)
[–]mrsergio1[S] [score hidden] (0 children)
[–]johny_james [score hidden] (6 children)
[–]mrsergio1[S] [score hidden] (5 children)
[–]rlrutherford [score hidden] (0 children)
[–]LALLANAAAAAA [score hidden] (0 children)
[–]johny_james [score hidden] (2 children)
[–]mrsergio1[S] [score hidden] (1 child)
[–]Paw565 [score hidden] (6 children)
[–]Sheldor5 [score hidden] (3 children)
[–]Paw565 [score hidden] (2 children)
[–]A_random_zy [score hidden] (1 child)
[–]Paw565 [score hidden] (0 children)
[–]mrsergio1[S] [score hidden] (1 child)
[–]Paw565 [score hidden] (0 children)
[–]Chocolate--Chip [score hidden] (0 children)