Flagged consistently across three rounds of the ADR-280 review, out of scope each time.
ingest_batch_with_metadata accepts the same field id with different value types across records. A full snapshot covering both cannot be encoded, so the store acknowledges writes that only fail later — when a snapshot happens to materialize. That is an accepted-then-fails-later shape: the caller gets Ok, and the failure surfaces at an unrelated later commit.
(This was actually useful during review as a deterministic fault injector for testing rollback paths, which is how it kept coming up.)
Fix direction: reject the conflicting type at ingest time, so the error lands on the call that caused it.
🤖 Generated with claude-flow
Flagged consistently across three rounds of the ADR-280 review, out of scope each time.
ingest_batch_with_metadataaccepts the same field id with different value types across records. A full snapshot covering both cannot be encoded, so the store acknowledges writes that only fail later — when a snapshot happens to materialize. That is an accepted-then-fails-later shape: the caller getsOk, and the failure surfaces at an unrelated later commit.(This was actually useful during review as a deterministic fault injector for testing rollback paths, which is how it kept coming up.)
Fix direction: reject the conflicting type at ingest time, so the error lands on the call that caused it.
🤖 Generated with claude-flow