## TL;DR
PytorchStreamReader failing means the checkpoint file, which is a zip archive, is damaged or incomplete: verify the file size against the source, test the archive's integrity directly, and re-copy or regenerate the checkpoint. A checkpoint copied while still being written, or truncated by a full disk or an interrupted transfer, reads exactly this way.

```text
how to fix checkpoint corruption error 'PytorchStreamReader failed reading zip archive'
```

## Use this when
- The run or call fails with this symptom: PytorchStreamReader failed reading zip archive when loading a checkpoint.
- You are working on loading a PyTorch checkpoint saved in the modern zip format 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 checkpoint written by an interrupted save that only exists in damaged form, where the fix is falling back to the previous checkpoint.
- The error text names a different tool, stage, or root cause. Match the verbatim error first and use that skill.

## Steps
1. Compare the file's size and hash with the source or with the save log's recorded size. Verify: a size or hash discrepancy is confirmed
2. Open the file with a zip tool and run its integrity test to localise the damage. Verify: the archive's damage is characterised
3. Re-copy with a verified transfer or regenerate the checkpoint from training, then test the archive again. Verify: a clean archive passes the integrity test
4. Load the repaired checkpoint into the model to complete the verification. Verify: the model loads and runs a batch

## Variant phrasings
### pytorchstreamreader failed reading zip archive checkpoint
The verbatim phrasing.
### pytorch checkpoint zip corrupted truncated fix
The corruption phrasing.
### torch load fails stream reader damaged checkpoint
The load phrasing.

Compatibility: PyTorch checkpoint zip archive integrity

## Why it happens
Modern PyTorch checkpoints are zip containers, so every zip failure mode applies: truncation, torn writes, and transfer corruption. The stream reader reports the container failure without distinguishing them, leaving size, hash, and archive tests to do that work.

## Edge cases / pitfalls
- Save to local disk then copy with verification; saving directly to network storage manufactures torn archives.
- Keep the previous checkpoint until the new one passes an integrity test and a load test.

## Provenance

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