Troubleshooting
“loading index (run ‘certify scan’ first)”
Section titled ““loading index (run ‘certify scan’ first)””The unit index doesn’t exist yet:
certify scan“No certification records found”
Section titled ““No certification records found””Run certification before generating reports:
certify certify --skip-agent“no configured submodules found”
Section titled ““no configured submodules found””In workspace mode, each submodule needs certify init:
certify init --workspaceArchitect review: LLM timeout
Section titled “Architect review: LLM timeout”Large models on local hardware can take several minutes per phase. The architect command uses a 10-minute timeout per phase. If your model is slower:
- Use a smaller model:
certify architect --model qwen3:8b - Run single phases:
certify architect --phase 1 - Use a cloud provider with faster inference
Architect review: fabricated metrics
Section titled “Architect review: fabricated metrics”If the LLM invents numbers not present in the snapshot, this usually means you’re using a model that doesn’t follow grounding instructions well. Try:
- A larger model (30B+ parameters follow instructions better)
- A code-specialized model (e.g.,
qwen/qwen3-coder-30b) - Run
certify certifyfirst to ensure the snapshot has real data
Agent review: 429 Too Many Requests
Section titled “Agent review: 429 Too Many Requests”Free-tier models on OpenRouter have rate limits.
- Use
--batch 20to process fewer units per run - Wait a few minutes between runs (the queue saves progress)
- Set up a paid fallback model in config
- Use
--skip-agentfor deterministic-only certification
Agent review: 401 Unauthorized
Section titled “Agent review: 401 Unauthorized”Your API key is invalid or not set:
export OPENROUTER_API_KEY=sk-or-v1-your-key-hereFor CI, add OPENROUTER_API_KEY as a GitHub repository secret.
Agent review: 402 Payment Required
Section titled “Agent review: 402 Payment Required”Account budget exhausted on OpenRouter. The system will:
- Abort the current model
- Try free-tier fallback models
- Skip agent review if all models fail
Certification continues with deterministic evidence only.
All units show the same score
Section titled “All units show the same score”This usually means no language-specific evidence was collected. Check:
- Is
go.modpresent? (needed for Go tools) - Is
goin PATH? - Run
certify scanto verify language detection - Check output for “Collected N repo-level evidence items”
Queue stuck / old state
Section titled “Queue stuck / old state”Reset the queue to start fresh:
certify certify --reset-queue“go vet” or “golangci-lint” not found
Section titled ““go vet” or “golangci-lint” not found”These tools are optional. Without them, the system uses available evidence. Install for better results:
# golangci-lintcurl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | shRecords directory too large
Section titled “Records directory too large”Each unit gets a small JSON file (~500 bytes). For very large repos (10k+ units):
- Add
.certification/records/to.gitignore - Use CI artifacts instead of committed records
- Scope certification to critical paths via
scope.include
Workspace: 0 units discovered in a submodule
Section titled “Workspace: 0 units discovered in a submodule”Check that the submodule has:
certify initrun (.certification/config.ymlexists)- Source files not excluded by
scope.exclude - An empty
scope.include: []means “include nothing” — remove it to include everything
Diagnose with Doctor
Section titled “Diagnose with Doctor”Before filing an issue, run the built-in diagnostics:
certify doctorThis checks your environment, project setup, configuration, policies, tools, and AI providers — showing exactly what’s working and what needs attention.
Getting Help
Section titled “Getting Help”- Run
certify doctorto diagnose setup issues - Run
certify onboardto see what steps remain - GitHub Issues
certify --helpfor command referencecertify <command> --helpfor flag details