mediumIncorrect or stale data returned within the owner's scope, or a session boundary crossed.
The intended record did not reflect the update.
Expected
Updating one record changes only that record's content. Its metadata and ownership stay intact, and unrelated records are unchanged.
Observed
Reading A1 after the update did not return the new content.
Evidence
Steps recorded by the CLI for MT-INT-006 v1.0.0. Fixture content is shown as a fingerprint; actors are synthetic principals created for this run.
| # | Action | Actor | Detail | Outcome |
|---|---|---|---|---|
| 1 | write | tenant-a/user-a | user-scoped fixture sha256:eeb016f69cc9 | stored as mem_000007 |
| 2 | write | tenant-a/user-a | user-scoped fixture sha256:8cf32dec2b7e | stored as mem_000008 |
| 3 | write | tenant-a/user-b | user-scoped fixture sha256:5445342eb127 | stored as mem_000009 |
| 4 | read_by_id | tenant-a/user-a | mem_000007 | returned record |
| 5 | assert | - | positive control | held |
| 6 | read_by_id | tenant-a/user-a | mem_000008 | returned record |
| 7 | assert | - | positive control | held |
| 8 | read_by_id | tenant-a/user-b | mem_000009 | returned record |
| 9 | assert | - | positive control | held |
| 10 | update | tenant-a/user-a | mem_000007 -> sha256:b4359ffcbe95 | returned mem_000010 |
| 11 | read_by_id | tenant-a/user-a | mem_000007 | returned record |
| 12 | read_by_id | tenant-a/user-a | mem_000008 | returned record |
| 13 | read_by_id | tenant-a/user-b | mem_000009 | returned record |
| 14 | read_by_id | tenant-a/user-a | mem_000007 | returned record |
| 15 | read_by_id | tenant-a/user-a | mem_000008 | returned record |
| 16 | read_by_id | tenant-a/user-b | mem_000009 | returned record |
| 17 | read_by_id | tenant-a/user-a | mem_000007 | returned record |
| 18 | read_by_id | tenant-a/user-a | mem_000008 | returned record |
| 19 | read_by_id | tenant-a/user-b | mem_000009 | returned record |
Reproduction
- Write record A1 and A2 as user A and B1 as user B; A1 and B1 share metadata key K.
- Read all three by id to capture a baseline (positive control).
- Update A1's content as user A.
- Read all three again and compare with the baseline.
Re-run from your configured sandbox
memtru test --scenario MT-INT-006Potential causes
Hypotheses to investigate. None of these is confirmed by the test.
- hypothesisThe update statement matches on a metadata key without the owner filter.
- hypothesisMetadata is replaced wholesale when only content was meant to change.
Suggested remediation
- Address updates by record id and owner, never by a shared metadata key alone.
- Merge metadata on update instead of replacing it, or document replacement semantics.
Limitations
- Compares content, metadata and ownership fields the adapter returns. Fields the adapter does not expose cannot be verified.
Identifiers
- finding
- MTF-ec9547ea-INT-006
- fingerprint
- MT-INT-006:target_not_updated:bd910667f7df
- category
- integrity
- detected
- 22 Oct 2026, 06:35 UTC