## TL;DR
Make artifact downloads bounded and resumable: fetch the artifact listing first, download only the files the comparison needs, such as metrics-bearing configs and the model file itself, in chunks with per-file timeouts, and cache downloads by artifact version so retries and later comparisons reuse them. A whole-artifact download of large checkpoints through a synchronous call is where the timeout lives.

```text
agent timed out when agent tried to download model artifacts for comparison and failed with a download error
```

## Use this when
- The run or call fails with this symptom: agent timed out downloading model artifacts for comparison.
- You are working on an agent comparing models by downloading their MLflow artifacts 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 comparison that truly needs full weights, where the fix is a longer budget and staged download rather than file selection.
- The error text names a different tool, stage, or root cause. Match the verbatim error first and use that skill.

## Steps
1. List the artifacts for each model version and mark the files the comparison actually reads. Verify: the needed file set is explicit
2. Download per file with individual timeouts and record completed files so an interruption resumes mid-set. Verify: progress is tracked per file
3. Cache by model version and artifact path, and reuse the cache for repeat comparisons. Verify: repeat work skips completed downloads
4. Run the comparison from the local copies and report which artifact versions were used. Verify: the comparison completes with versions cited

## Variant phrasings
### agent timed out downloading model artifacts comparison
The verbatim phrasing.
### agent download artifacts timeout cache resume fix
The resume phrasing.
### mlflow artifact download slow comparison agent selective
The selective phrasing.

Compatibility: Agent comparison workflows downloading MLflow model artifacts

## Why it happens
Artifact trees include checkpoints that dwarf the files a comparison reads, and a single synchronous download couples the comparison's fate to the largest file and the slowest hop. Selecting files and checkpointing progress decouples them.

## Edge cases / pitfalls
- Server-proxied artifact paths are slower than direct store paths; where policy allows, read from the store directly.
- Verify downloaded files against listed sizes; a timed-out file left in place poisons the cache.

## Provenance

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