Skip to content

rvf: ingest accepts conflicting value types for one field id, failing later at snapshot time #772

Description

@ruvnet

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions