KamoCRM

A 40001 podczas przygotowywania powiadomień o zakończeniu nie cofa już podpisu

FixESigService
Shipped
8 listopada 2026 00:45 UTC
Author
Kamo
Commit
ae2e462

Pierwsze naciśnięcie przycisku Finish zakończyło się niepowodzeniem z wynikiem 500, a ponowna próba zakończyła się sukcesem Zawiadomienia zostały skomponowane wewnątrz transakcji podpisania pod catch-all: ich Odczyty (nadawca, szablon, ponowne utworzenie łącza do kopii) trafienie YugabyteDB SQLState 40001 right Po zapisaniu wierszy podpisu, repozytorium oznaczyło udostępnione pliki jako Transakcja była tylko cofania, catch połknął go, a zatwierdzenie rzucił UnexpectedRollbackException - cofanie całego podpisu. - EsignNoticeComposer (nowa fasola): wszystkie prace DB, REQUIRES_NEW + @RetryOnDbConflict, ponownie odczytany przez id, uruchomiony z afterCommit. EsignNotificationService Teraz przechwytuje tylko identyfikatory, harmonogramy i wysyła. Dotyczy zakończonych, dekodowanych, Nieważne i wygasłe powiadomienia. - submit() i decoder() są @RetryOnDbConflict (doradca biblioteki współdzielonej, poza Transakcja), więc każdy 40001 jest ponownie próbowany w nowej transakcji. - Połowy spłaszczania / certyfikatu i rekordu użycia są teraz odrzucane Przejściowy konflikt lub stan tylko do cofnięcia (DbConflicts.rethrowIfDoomed) zamiast połykać go w zatruwający commit. - SigningSurvivesDbConflictTest odtwarza cofnięcie wyjątku połkniętego Prawdziwe proxy transakcji i dowody powiadomień i zgłoszeń przetrwały 40001.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing