## TL;DR
Fix this in the deletion API under a legal hold by doing this first: check the legal hold flag on the record, exclude held records from deletion, document the hold as the retention reason on the request, and delete everything not held with a follow-up diary entry for when the hold lifts. Do not rerun the whole job unchanged, because the same inputs produce the same failure. Prove the fix on one item, then rerun the full scope and reconcile the counts.

```text
409 conflict with record locked by legal hold
```

## Use this when
- The operation fails with this exact problem: 409 conflict with record locked by legal hold.
- The same failure repeats on retry with unchanged inputs.
- An audit, review, or request is blocked until this item completes.

## Not for this skill when
- The message is a platform outage notice or a general sign-in failure. Resolve that first, then return here if this problem remains.
- The operation completes and you only disagree with its output. That is a quality review, not this failure.

## Steps
1. Reproduce the failure with the smallest scope that still shows it in the deletion API under a legal hold, and copy the full message plus the item, account, or request involved into the run notes. Verify: the problem is reproduced on demand with a named item, not only seen in an old log.
2. Apply the specific fix for this problem: check the legal hold flag on the record, exclude held records from deletion, document the hold as the retention reason on the request, and delete everything not held with a follow-up diary entry for when the hold lifts. Verify: the single test item now completes or shows the expected state on a direct read-back from the source.
3. Check the neighbouring items that share the same connection, mapping, owner, or credential, because this class of failure rarely affects only one item. Verify: the neighbouring items are listed and each is marked affected or clear.
4. Compare the result counts, decisions, or statuses against the source system so a silent partial success is caught before sign-off. Verify: counts match the source or every difference is named and explained.
5. Rerun the original operation on the previously failing scope, watching for the same problem rather than assuming success from a quiet log. Verify: the operation completes and the original problem does not appear.
6. Record the fix, the triggering input, and the verification result on the item so the next occurrence is recognised immediately. Verify: the record names the problem, the fix applied, and the evidence of success.

## Why it happens
The record is locked by a legal hold, so the API correctly refuses deletion with a conflict, and treating that refusal as a job failure hides a lawful partial outcome.

## Variant phrasings

### deletion API failed error 409 conflict record locked by legal hold failure
The verbatim form searchers paste from the console or ticket. Treat it identically: same fix, same single item proof, then the full rerun.

### How to fix this failure in practice
The how-to phrasing for the same failure. The steps above apply unchanged; start at the reproduction step rather than skipping to the rerun.

### Troubleshooting the symptom-first form
The phrasing used when the console hides the full message. Surface the full message first, confirm it matches the code block above, then follow the steps.

Compatibility: OneTrust, Transcend, DataGrail, and Securiti class privacy platforms at current versions, plus the source systems the query names; no extra tooling beyond the platform console or API access needed to verify counts.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_ARPrfC2SwIqCr3Qsi-IDxw
