## TL;DR
Evidence pulls hit Stripe's limits because the agent fetches everything at once. Prioritize disputes by evidence deadline, back off with jitter on 429, cache what you fetch, and checkpoint per dispute id so the run resumes where it stopped.

```text
fraud agent failed to pull dispute evidence after stripe api rate limit
```

## Use this when
- Evidence pulls 429 mid-run.
- The agent fetches disputes in arrival order and the urgent ones starve.
- A crashed run re-fetches every dispute from the start.

## Not for this skill when
- The dispute is closed. Evidence submission is rejected regardless of pacing.
- Evidence is missing on your side. That is a data problem, not a limit problem.
- Stripe is down. That is an outage, not throttling.

## Steps
1. Sort the dispute queue by evidence deadline, soonest first. Verify: the most urgent disputes are fetched before any limit is hit.
2. Add jittered exponential backoff on 429, honoring any retry guidance in the response. Verify: the agent slows down instead of hammering.
3. Cache dispute and evidence objects for the run. Never re-fetch a dispute already pulled. Verify: each dispute id hits the API once.
4. Checkpoint after each dispute completes. Verify: a crash resumes at the next dispute, not the first.
5. If limits persist, split the run across time or request a limit review. Verify: the queue drains without repeated 429s.

## Variant phrasings
### stripe 429 pulling dispute evidence
Same failure, common phrasing.
### agent rate limited on disputes api
Symptom-level search.
### dispute evidence fetch throttled
Engineering-side wording.

Compatibility: Stripe Disputes API. Rate limits are per account and per endpoint family.

## Why it happens
Dispute evidence pulls are heavy: each dispute means the dispute object, its evidence, and often the original charge. An agent looping that per dispute with no pacing burns through the quota fast, and evidence deadlines do not move, so the 429s land hardest on the most urgent items when they are fetched last.

## Edge cases / pitfalls
- Evidence deadlines are hard. A 429 retry loop that outlasts a deadline loses the dispute automatically, so build the deadline into fetch priority.
- Closed disputes reject evidence submissions. Check status before fetching.
- Paginating evidence lists counts against the same quota. Fetch only what you will submit.
- Keep the evidence assembly idempotent so a resumed run does not submit duplicates.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_zhM31q7ahaNxygxR-Qae-A
