noCV
RRETENTION-105 · Apply removal safely

Recheck holds when a queued attachment purge begins

Practice briefBugAdvanced

An attachment becomes held after the purge queue is populated, but the worker trusts the old eligibility flag and removes it anyway.

Focused work estimate
3h 30m + prerequisites
Priority in the scenario
High
Engineering practice
Concurrency · State transitions

Estimated field mix

  • Privacy engineering50%
  • Database engineering30%
  • Backend20%

Field percentages are editorial estimates of the ticket's engineering focus. They total 100%; they are not measured time, proficiency scores, or ownership evidence.

Your next step

Review it, then add it to your workspace.

The board opens an editable draft; nothing is saved until you confirm it. Sign-in and workspace permissions apply, and Demo boards remain ephemeral.

Project context

A fictional support service keeps uploaded diagnostic files indefinitely. The exercise policy expires attachments 30 days after case closure, while a separately authorized investigation hold pauses removal. These are invented product rules, not legal advice or compliance certification.

Setup prerequisites

  • Create synthetic cases, attachment metadata and a fake object store with controllable failures.
  • Use an injected UTC clock and an authorized operator fixture; no real support uploads are needed.

Preceding work

Complete these dependencies, or supply their agreed outputs before taking this ticket.

Acceptance criteria

  • Re-evaluate current policy and hold state before issuing removal.
  • Define coordination between hold creation and a purge already crossing its irreversible boundary.
  • Return an explicit conflict or too-late state without claiming a newly created hold restored deleted bytes.

Implementation constraints

  • Model the race using a controlled storage adapter; document the exact serialization boundary.

Verification to include

  • Pause before removal, place a hold and verify the object remains.
  • Race hold creation with confirmed removal and verify the declared conflict outcome and truthful audit.

Deliverables

  • Purge/hold transition protocol and race tests

Rollout and recovery

Keep deletion disabled until both race orderings pass; preserve metadata for any ambiguous external operation.

Value of the work

For the engineer: Practice temporal policy, deletion races, exception authority and truthful recovery reporting.

For the team: Develop inspectable retention behavior that a company can review against its own approved data policy.

Evidence boundaries

Outcome Evidence: Tests, patches, and runbooks are requested deliverables. They become Outcome Evidence only through a qualified Mission and immutable Evidence IDs.

Ownership Evidence: Independent adaptation must be observed under a declared verification policy and cite immutable Evidence IDs. Completing a planning ticket establishes no Ownership Evidence.