Troubleshooting¶
This page lists failures and their fixes, for developers running the steps. For the problems a user is likely to meet, see If something goes wrong in the tutorial.
Network failures that look alike¶
Four different failures all look like "the fetch broke". Backing off fixes only the first.
| Symptom | Cause | Fix |
|---|---|---|
| HTTP 429 responses spread across many URLs, easing with delay | throttling | raise --sleep; set S2_API_KEY |
Every OpenAlex request returns 429 with a wait of hours (OpenAlexBudgetError) |
the free daily budget is spent | set OPENALEX_API_KEY, or wait for the reset (Run the preflight) |
IncompleteRead on particular large records, failing at the same byte count every time |
a truncated uncompressed response | request gzip; common.http already does |
One URL fails under urllib but works under curl, including a large Semantic Scholar batch read short (Semantic Scholar ignores gzip) |
client incompatibility | common.curl_get, which the tools try automatically for GET and POST requests; Semantic Scholar batch requests go to curl directly |
If retries never converge, the diagnosis is wrong. To tell which case applies,
run curl -sS --compressed on one failing URL.
The audit fails¶
references.py --audit names each defect. Fix the row in rows.json and rerun.
Do not relax the gate.
| Defect | Fix |
|---|---|
a formatting defect: empty venue, no-year, no-authors, et-al, malformed-initial, mangled-punct, missing-space, html-entity, markup-tag, uppercase-title run (a ? inside a URL is not mangled-punct) |
fix the apa by hand, or run --repair for markup, hyphen and ?. damage |
unverified (...) |
verify.py --rows rows.json --only <refs>, then re-canon those rows |
hand-check-missing |
handcheck.py --prepare, the hand-check agent, then --ingest (Hand-check references with no DOI) |
summary-unchecked, summary-flagged |
summary_audit.py; fix a flagged summary and check it again (Check every summary) |
no-summary |
write a summary from the abstract, then check it |
abstract-wrong |
add the real abstract as a landing-page entry, rewrite the summary, and check it again |
hand-fix-lost |
run references.py to re-apply hand_fixes.json, or update the fix if the row changed (Rebuild every reference) |
candidates-pending |
candidates.py --prepare, the agents, then --ingest (Decide the candidates) |
candidate ... is marked include but is not in the table |
--export-included, merge_lanes.py --append, then verify |
link-doi-mismatch |
make the row's link the DOI URL of its doi |
| an unacknowledged warning | fix the row, or acknowledge it (Acknowledge warnings) |
The source is wrong, not the corpus¶
- CrossRef truncates some records: an author list cut to one name, a subtitle
dropped, a section heading deposited as the title. Compare with the publisher's
landing page, and record the fix in
hand_fixes.json. - A widely used DOI can be wrong. PubMed and CrossRef confuse Felleman & Van
Essen (1991) with that issue's preface, and 19 papers in one corpus cited the
preface's DOI. A
MISMATCHsometimes means the literature is wrong.
Verification returns NOT-FOUND for real papers¶
The usual cause is arXiv rate limiting. verify.py batches arXiv lookups to
prevent it. If a cluster of preprints still comes back NOT-FOUND, rerun before
treating them as invented.
The timeline hides landmarks or looks wrong¶
| Symptom | Cause | Fix |
|---|---|---|
| Labels missing | the label cap bound | read the run's "N qualified, M labeled, K dropped" line and its dropped list, then raise --max-labels (Tune the timeline) |
| Dots bunched at the left | a long, sparse early history | --time-warp 0.85 and --min-year |
| A family's claim is cut off | the copy beside the lane is truncated to fit | none needed; the full text appears on hover |
| Many hollow dots | poor citation-count coverage, or counts never attached | check coverage, and run citations.py --attach-only (Fetch citation counts) |
Citation counts look wrong¶
A famous old paper with a single-digit OpenAlex count is an undercount; compare the Semantic Scholar column, and see Fetch citation counts. A count that dropped sharply after a DOI change may point at a shadow record rather than the version of record.