rvf: ingest accepts conflicting value types for one field id, failing later at snapshot time
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 4.5k
- Forks
- 603
- Avg merge
- 23h 32m
- Merged PRs (30d)
- 59
Description
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
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the ingest_batch_with_metadata entry point and trace how field ids and value types are validated before snapshot materialization. Reproduce the case with records that use different value types for one field id; done means the ingest call rejects the conflict instead of acknowledging it and failing later during a snapshot.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 65/100