Skip to content

Questions? Join our Discord.

JasperFx

Formal support for Wolverine, Marten, and Polecat is available through our Support Plans.

Troubleshooting concurrency failures Added in 1.14.0 ​

Diagnose the Critter Stack's concurrency exceptions from a stack trace: JasperFx.ConcurrencyException ('Optimistic concurrency check failed', 'Expected the existing version to be N, but was M'), EventStreamUnexpectedMaxEventIdException, DcbConcurrencyException, SagaConcurrencyException, StreamLockedException, Marten's ConcurrentUpdateException, and the ExistingStreamIdCollisionException look-alike. Covers which store throws which type, the inheritance that decides what OnException<T> matches, the numeric-revision re-store trap, redacted Postgres detail, retry versus error-queue policies and when a retry cannot succeed, AggregateException, and the Wolverine.HTTP 409 mapping.

Use when a handler, endpoint or test fails with one of these, or when choosing a policy for concurrency failures.

Skill details ​

  • Skill name: critterstack-troubleshooting-concurrency
  • Applies to: marten, polecat, fisher, wolverine
  • Tags: troubleshooting, concurrency, optimistic-concurrency, event-sourcing, error-handling, ConcurrencyException, EventStreamUnexpectedMaxEventIdException, DcbConcurrencyException, SagaConcurrencyException, StreamLockedException, ConcurrentUpdateException, marten, polecat, fisher, wolverine
  • Added in: 1.14.0
  • License: Proprietary. Copyright JasperFx Software LLC.

Proprietary. Copyright © JasperFx Software LLC. See the license for terms.