## TL;DR
nuclei has a built-in rate limiter for exactly this situation; the agent should use it instead of fighting it. Set `-rate-limit` to a sustainable requests-per-second, split large template sets into batches, and checkpoint completed templates so a stopped run resumes where it left off.

```text
agent hit nuclei template rate limit mid-engagement and failed to retry
```

## Use this when
- nuclei reports rate limit errors partway through a template run against an authorized target and the agent gives up.
- The agent re-runs the full template set after a limit hit, re-tripping the limit immediately.
- The engagement involves hundreds of templates against one target.

## Not for this skill when
- The target's WAF or server is rate-limiting the scan traffic. That is target-side throttling, a different fix.
- nuclei fails to start because templates will not load. That is a template problem.
- The engagement scope restricts scan intensity. Respect the scope; pacing flags do not override it.

## Steps
1. Add an explicit rate limit to the nuclei invocation, for example `nuclei -u TARGET_URL -t templates/ -rate-limit 50 -o results.jsonl`. Verify: the run starts without immediate throttling errors.
2. Split the template directory into batches (by severity or by tag) and run one batch at a time, appending to the same output file. Verify: each batch command is independently resumable.
3. Record completed batches in a small progress file as each finishes. Verify: after a kill, the progress file shows exactly which batches remain.
4. On retry, run only the missing batches instead of the whole set. Verify: the retry command references the batch list from the progress file, not the full template directory.
5. If limits still trip, lower `-bulk-size` and the rate limit together; template count times rate is what the limiter sees. Verify: a 10-minute test batch completes cleanly before the full run.

## Variant phrasings
### nuclei rate limit errors during agent scan
Same pacing fix.
### agent cannot retry nuclei after throttling
Resume-focused variant.
### pace nuclei templates for long agent run
Planning phrasing.

Compatibility: nuclei 3.x. `-rate-limit`, `-bulk-size`, and tag-based template selection are stable flags.

## Why it happens
Agents default to maximum speed: all templates, all at once. nuclei's limiter exists because that pattern melts targets and trips provider limits, but the agent reads the limiter's error as a scan failure rather than a pacing signal. Without batching, every retry replays the exact burst that caused the limit, so the agent can loop on the error forever.

## Edge cases / pitfalls
- Rate limiting by nuclei is self-protection, not authorization to scan faster another way. Do not parallelize around it.
- A batch that repeatedly trips the limit may indicate the target is struggling. Check with the engagement lead before pushing through.

## Provenance

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