Summary
On a stale manifest snapshot, a bucket-direct CLI write aborts with:
stale view of 'edge:IdentifiesPerson': expected manifest table version 37 but current is 38 — refresh and retry
The message tells the OPERATOR to refresh and retry, but the CLI itself exits non-zero without doing so — so every wrapper script/pipeline has to pattern-match this string and re-invoke (v0.8.1, seen mid-way through a 221k-row multi-invocation load sequence where invocation N+1 raced invocation N's commit visibility).
Ask
When the engine detects the stale-view CAS condition on a write whose semantics are idempotent/re-computable (load merge-by-key, branch merge), refresh the manifest and retry internally (bounded attempts + backoff) before surfacing the error. Where internal retry isn't safe, a distinct exit code for 'transient — safe to re-run' would at least let wrappers retry without string-matching.
Related: #415 (merge double-apply under client retries), #384 (merge cost).
🤖 Generated with Claude Code
Summary
On a stale manifest snapshot, a bucket-direct CLI write aborts with:
The message tells the OPERATOR to refresh and retry, but the CLI itself exits non-zero without doing so — so every wrapper script/pipeline has to pattern-match this string and re-invoke (v0.8.1, seen mid-way through a 221k-row multi-invocation load sequence where invocation N+1 raced invocation N's commit visibility).
Ask
When the engine detects the stale-view CAS condition on a write whose semantics are idempotent/re-computable (load merge-by-key, branch merge), refresh the manifest and retry internally (bounded attempts + backoff) before surfacing the error. Where internal retry isn't safe, a distinct exit code for 'transient — safe to re-run' would at least let wrappers retry without string-matching.
Related: #415 (merge double-apply under client retries), #384 (merge cost).
🤖 Generated with Claude Code