agent miscalculated retention and deleted the last monthly recovery point during a prune test
Retention math must be tested against the calendar it will meet: the agent deleted the last monthly point because its rule counted intervals from the wrong anchor or treated a month as a fixed day count. Use when an agent pruning recovery points to retention policy. Not for a policy that genuinely intends the deletion the agent performed, where the fix is documenting the intent so the next review does not flag it.
TL;DR
Retention math must be tested against the calendar it will meet: the agent deleted the last monthly point because its rule counted intervals from the wrong anchor or treated a month as a fixed day count. Rebuild the rule from the policy's words, keep at least the newest point in every required tier regardless of computed age, simulate the rule over a year of synthetic points including month boundaries and leap cases, and only then let it delete, in a dry pass a human reviews first.
agent miscalculated retention and deleted the last monthly recovery point during a prune testUse this when
- The job or restore fails with this symptom: agent miscalculated retention and deleted the last monthly recovery point during a prune test.
- You are working on an agent pruning recovery points to retention policy and the failure repeats on the same target or schedule.
- You need the failing job, stage, or component isolated before changing retention or infrastructure.
Not for this skill when
- A policy that genuinely intends the deletion the agent performed, where the fix is documenting the intent so the next review does not flag it.
- The error text names a different product, stage, or root cause. Match the verbatim error first and use that skill.
Steps
- Reconstruct what the rule computed for the deleted point: its age, tier assignment, and the surviving set it expected. Verify: the miscalculation is reproduced
- Restate the policy rule precisely, including tier definitions and a never-delete-the-last-of-a-tier guard. Verify: the rule matches the policy's language
- Simulate the rule against synthetic points across a full year, asserting every tier always retains its newest point. Verify: the simulation proves the guard
- Restore the deleted point if a copy exists elsewhere, or record the coverage loss formally if it does not. Verify: the loss is repaired or owned
- Run the corrected rule in dry-run mode for one cycle with human review of its delete list. Verify: the first real run is supervised
Variant phrasings
agent miscalculated retention deleted last monthly recovery point
The verbatim phrasing.
agent prune test deleted monthly point retention rule fix simulate
The simulation phrasing.
retention calculation agent guard last of tier recovery points
The guard phrasing.
Compatibility: Agent retention calculations for recovery point pruning
Why it happens
Retention rules are date arithmetic wrapped in policy language, and both halves are easy to get subtly wrong: months are not 30 days, tiers overlap, and age anchors differ. A wrong rule does not fail loudly; it deletes correctly-shaped things for the wrong reasons until it reaches the point that mattered.
Edge cases / pitfalls
- Dry runs must show the surviving set, not just the delete list; the invariant lives in what remains.
- Leap years and daylight-saving boundaries belong in the simulation set permanently, not as a one-off check.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_POog9--QaRUQL5gH9dbpGw