FATAL] Could not load template" nuclei error on authorized scan
Fixes nuclei's FATAL could-not-load-template error on an authorized scan: updating the template library, fixing the -t path, and reinstalling templates when the checkout is corrupt. Use when nuclei aborts before scanning. Not for templates that load but match nothing.
TL;DR
nuclei cannot find or read its template library, so it aborts before touching the target. Update the templates with nuclei -update-templates, point -t at the right directory, and reinstall the templates repo if the checkout is corrupt. Then confirm with a single-template run.
[FATAL] Could not load template: open /root/nuclei-templates/http/missing.yaml: no such file or directoryUse this when
- nuclei prints the FATAL line and exits before any request goes out.
- You recently moved, updated, or reinstalled nuclei.
- The scan target is in your authorized scope.
Not for this skill when
- Templates load but find nothing. That is a matching problem, not a load problem.
- One custom template fails. Validate that template instead.
Steps
- Update the template library:
nuclei -update-templates. Verify: the command completes and reports the template count. - Check the template path nuclei expects:
ls ~/nuclei-templates | head -5. A moved home directory or changed -td flag breaks the default. Verify: the directory exists and holds category folders. - If the checkout is corrupt, delete and re-clone it, then update again. Verify:
nuclei -update-templatessucceeds on the fresh checkout. - Point -t explicitly if you use a non-default location:
nuclei -t /opt/templates/http/ -u https://target.example.com. Verify: nuclei loads templates instead of printing FATAL. - Smoke-test with one template against a lab host before the engagement run:
nuclei -t ~/nuclei-templates/http/technologies/ -u https://target.example.com. Verify: the scan starts and templates execute.
Compatibility: nuclei 3.x. Template layout is stable across recent 3.x releases.
Variant phrasings
nuclei could not load template fatal
Same fix path, common phrasing.
nuclei templates not found
Symptom-level search.
nuclei -update-templates failed
The update-flavored search.
Why it happens
nuclei loads templates from disk at startup, defaulting to ~/nuclei-templates. A failed or partial update, a relocated home directory, or a -t path pointing at nothing leaves the loader with no files, and it treats that as fatal rather than scanning blind. Corrupt git checkouts after interrupted updates are the classic cause.
Edge cases / pitfalls
- -update-templates needs network access to the template repo. Offline test boxes need a pre-seeded templates directory.
- Deleting the templates directory mid-engagement loses your place. Re-seed from a known-good copy instead.
- Custom -t paths must point at directories or files that exist. A typo'd path gives the same FATAL.
- Only scan targets in your written authorization. A working template library does not expand scope.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_zYYGmP6ds1m7fqo6sYT-Rw