## TL;DR
A finished run cannot be resumed: resume continues runs that are crashed or still marked running, and a cleanly finished run is closed for good. For more training, start a new run and link it to the previous one through config or tags, or, if the finish was accidental, use the resume setting that allows reusing the id only in the specific must-resume mode your SDK version documents, understanding it reopens a closed record.

```text
how to fix wandb resume error 'Run already exists and is finished, cannot resume'
```

## Use this when
- The run or call fails with this symptom: wandb resume error: Run already exists and is finished, cannot resume.
- You are working on a wandb training job trying to continue a completed run and the failure repeats on the same run or configuration.
- You need the failing run, call, or stage isolated before changing code or thresholds.

## Not for this skill when
- A run marked finished by a wrapper while training continues elsewhere, where the fix is the wrapper's lifecycle handling.
- The error text names a different tool, stage, or root cause. Match the verbatim error first and use that skill.

## Steps
1. Open the run and confirm its state is finished rather than crashed, and note when and how it finished. Verify: the run's terminal state is confirmed
2. Decide whether continuation must share the run: if yes, check whether your SDK supports reopening and what it does to the run's history. Verify: the continuation strategy is chosen explicitly
3. Otherwise start a new run, copying the prior run's config and recording the predecessor's id in config or a tag. Verify: the new run is linked to the finished one
4. Run a short continuation and confirm metrics append in the new run with the link visible. Verify: continuation logs cleanly with lineage recorded

## Variant phrasings
### wandb run already exists and is finished cannot resume
The verbatim phrasing.
### wandb resume finished run start new run link
The new-run phrasing.
### wandb resume allow reopen finished run
The reopen phrasing.

Compatibility: Weights and Biases run resume semantics

## Why it happens
Resume semantics protect finished results from being rewritten, so the service closes them. Jobs that treat resume as a general restart mechanism collide with that closure whenever an earlier attempt actually completed.

## Edge cases / pitfalls
- The allow-resume modes differ across SDK versions; verify against the installed version's docs, not memory.
- Sweep agents hitting this usually means a run id collision in the sweep config, a different bug than continuation.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_dYqiPuQrmnB8WWlqnq4Lug
