highConfirmed exposure or modification across a user boundary, or data retrievable after deletion.
A deleted record was still retrievable after the consistency window.
Expected
After a successful delete, the record stops being returned by search and read by id within the configured consistency window.
Observed
Delete was accepted, but the record was still returned via search and read by id after 3 attempt(s) over 103 ms (policy: 3 x 50 ms).
Evidence
Steps recorded by the CLI for MT-DEL-003 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:943d98d0da72 | stored as mem_000003 |
| 2 | search | tenant-a/user-a | query sha256:118f212d0065 | 1 result(s); fixture present |
| 3 | assert | - | positive control | held |
| 4 | read_by_id | tenant-a/user-a | mem_000003 | returned fixture |
| 5 | assert | - | positive control | held |
| 6 | delete | tenant-a/user-a | mem_000003 | request accepted |
| 7 | search | tenant-a/user-a | query sha256:118f212d0065 | 1 result(s); fixture present |
| 8 | read_by_id | tenant-a/user-a | mem_000003 | returned fixture |
| 9 | search | tenant-a/user-a | query sha256:118f212d0065 | 1 result(s); fixture present |
| 10 | read_by_id | tenant-a/user-a | mem_000003 | returned fixture |
| 11 | search | tenant-a/user-a | query sha256:118f212d0065 | 1 result(s); fixture present |
| 12 | read_by_id | tenant-a/user-a | mem_000003 | returned fixture |
Reproduction
- Write a record containing a unique marker.
- Confirm it is retrievable (positive control).
- Delete it through the provider's delete operation.
- Poll search (and read by id) for the marker until the consistency window elapses.
Re-run from your configured sandbox
memtru test --scenario MT-DEL-003Potential causes
Hypotheses to investigate. None of these is confirmed by the test.
- hypothesisA soft-delete flag is written but the search path does not filter on it.
- hypothesisA derived index (embeddings, cache) is not invalidated on delete.
- hypothesisPropagation takes longer than the configured window.
Suggested remediation
- Make deletes remove or exclude the record from every retrieval index, including vector and cache layers.
- If deletes are soft, filter deleted records on every read path.
- If propagation is asynchronous, document the window and set execution.consistency to match it.
Limitations
- Checks visibility through the adapter's retrieval surfaces only. It is not proof that backups, replicas, logs, embeddings, caches or derived data were erased.
- A PASS holds for the configured consistency window, not for every timing.
Identifiers
- finding
- MTF-ec9547ea-DEL-003
- fingerprint
- MT-DEL-003:deleted_record_retrievable:428ad6400e6c
- category
- deletion
- detected
- 22 Oct 2026, 06:35 UTC