Skip to content

Questions? Join our Discord.

JasperFx

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

Troubleshooting concurrency failures New 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 LICENSE for terms.