ExtractionRunConflictException

A write disagreed with what the store already holds.

Five cases, one per door: a terminal write whose fingerprint differs from the one that ended the run; a write, through ExtractionRunStore.save or ExtractionRunStore.recordInvocation, against a run that has already ended; a save that disagrees with the stored run's lineage or start time (tenant cannot disagree — it is half of ExtractionRunKey, so a different tenant always addresses an entirely separate run); a save whose ExtractionRun.version does not name the version currently stored; and an invocation record, through ExtractionRunStore.recordInvocation — the only door onto that state — that differs from an attempt the store already holds as terminal. save cannot raise that last case: it does not read or write invocation rows, so nothing it carries there is ever compared against one.

The message never quotes a fingerprint in full or any part of a payload. It says which run and which rule, which is what an operator needs, and leaves the values to a deliberate read.

EXPERIMENTAL. The shape may still change while extraction runs (DICE #67) land.

Constructors

Link copied to clipboard
constructor(key: ExtractionRunKey, message: String)

Properties

Link copied to clipboard
open val cause: Throwable?
Link copied to clipboard

The run the write was against

Link copied to clipboard
open val message: String?

Functions

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard