Indexing Stuck or Failing
What to do when an index never completes, retries, or fails outright.
A first index typically takes 1–3 minutes for a moderately sized repo. Incremental indexes are nearly instant. If you’re seeing something different, this page has the diagnostic steps.
Symptom: index status stays “queued”
The job hasn’t started running yet. Brief queueing (under a minute) is normal during high-traffic periods.
- Check the repositories page for the index status.
- If it’s been queued more than 5 minutes, the queue may be backed up. Wait 5 more minutes.
- If still queued after 15 minutes, contact support via feedback.
Symptom: index status stays “indexing”
The job is actively running but taking longer than expected.
- A first index on a very large repo (>10k files) can take 5–10 minutes legitimately.
- An incremental index that touches >20 new files or modified dependency files triggers reclassification, which adds 1–2 minutes.
- Anything past 15 minutes is unusual. Check the dashboard for an error; if there isn’t one, contact support.
Symptom: status flips to “failed”
The dashboard shows the failure reason. Common ones:
| Reason | What it means | Fix |
|---|---|---|
repo_not_accessible | Scrubby’s GitHub App can’t read the repo. | Confirm the app is installed and the repo is in the install scope. |
head_sha_unreachable | The repo has been force-pushed or rewound since indexing started. | Re-trigger the index. |
oversized_repo | Repo exceeds size limits. | Contact support; some cases are configurable. |
quota_exceeded | Account is over usage cap. | Upgrade plan or wait for the next billing cycle. |
internal_error | Backend bug. | Retry; if persistent, contact support. |
Re-triggering an index
From your AI editor:
"Re-index this repo with Scrubby."
From the dashboard, click Re-index on the row.
Re-indexing is rate-limited to once per minute per repo — see Rate Limits. If you trigger it twice in a row you’ll get a 429.
Force a full re-classification
Most incremental re-indexes skip domain reclassification (it’s expensive). If you’ve done a major restructure and want a fresh classification:
"Re-index this repo with Scrubby, full (not incremental)."
Or pass incremental: false if you’re calling the REST API directly.
Symptom: index completes but is missing files
- Files larger than 200KB are skipped during sampling. They still exist in the index but their content is summarized rather than fully analyzed.
- Generated files (
.min.js,package-lock.json, lockfiles, vendored deps) are skipped intentionally. - Files matching
.gitignorepatterns are not indexed.
If you have a custom case (e.g. an unusual file extension Scrubby doesn’t recognize), submit it via feedback so support can extend the recognized list.
Symptom: index completes but domains look wrong
- This is rare on the first index. Send a screenshot of the discovered domains via feedback along with the repo path; we’ll dig in.
- More common: the domains look right initially but drift over time. That’s the system working as designed — the learning loop is refining weights based on the reviews you run. Trust the convergence.
Last updated