You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Both Engine A gates report SKIPPED, NOT PASSED on main — 20 GB of cache restored and no ontology reachable #732
Observed while adopting claw's reusable id-label gate (#731). Not caused by that PR — it is already happening on main, and this is a record of the evidence.
What the runs show
From the most recent successful label-correspondence run on main (run 33454082017):
Cache hit for restore-key: oaklib-Linux-2026-08
Cache restored from key: oaklib-Linux-2026-08
...
unreachable ontologies: CHEBI, CL, ENVO, GO, NCBITaxon, UBERON
oaklib directory: /home/runner/.data/oaklib
5 entries, 20.29 GB
CL no .db or .db.gz present
⚠️ SKIPPED, NOT PASSED: this check could not look anything up (#708).
The cache hit, restored 20.29 GB across 5 entries, and the validator still could not reach a single ontology. So both Engine A gates — validate-terms-taxa and validate-terms-all — are currently reporting SKIPPED rather than validating anything.
The #708 guard is the only reason this is visible instead of a green tick. Without it these two steps would look like passing gates.
Why it is worth its own issue
#716 asks that the validator skip only the unreachable ontology rather than everything, which is about granularity once something is unreachable. This is the prior question: why is nothing reachable when 20 GB of cache was just restored?
Two candidates, and I have not distinguished them:
the cached entries are not the files the validator looks for (a path or naming mismatch between what is cached and what oaklib expects at ~/.data/oaklib), or
the download that would populate them produces nothing — every run logs Downloading chebi.db.gz: 0.00B [00:00, ?B/s], which is 0 bytes transferred, so whatever is in those 5 entries did not come from a successful fetch of these six ontologies.
The second reading fits the evidence better: a 20 GB cache that contains no .db for any of the six named ontologies suggests it is caching something else entirely.
Consequence
validate-terms-all is the gate that "has no waiver — fixing the term is the only remedy", and #277 enabled it after the residuals were cleared. It is presently enforcing nothing. validate-products (Engine B) is unaffected and still runs.
That PR preserves both steps through claw's extra-enforce-recipes (culturebotai-claw#303) precisely so they are not lost in consolidation. It keeps the current behaviour exactly, including this skip. Fixing the skip is separate work and belongs here.
Candidate answer to "why is nothing reachable when 20 GB of cache restored": the entries are .db files with no .db.gz, and sqlite:obo: asks pystow to ensure the .gz, so every run re-downloads it — from s3.amazonaws.com/bbop-sqlite, which is retired and answers 403 (#739). The 0-byte Downloading chebi.db.gz lines are that.
#740 moves oaklib to a release that downloads from the CDN instead. Worth knowing before it lands: on a cache that holds .db without .gz, the first run after the merge will now actually fetch each .gz (ncbitaxon is the big one) — a bandwidth cost where there used to be a 403 — unless ontology_adapters._local_build catches it first, which it does for NCBITaxon but not for the six conf/id_label_targets.yaml adapters that resolve_ontology_config.py does not find a local .db for.
Activity
Call claw's reusable id-label gate, keeping what is this repository's (…
realmarcin commentedon Sep 6, 2026
Candidate answer to "why is nothing reachable when 20 GB of cache restored": the entries are
.dbfiles with no.db.gz, andsqlite:obo:asks pystow to ensure the.gz, so every run re-downloads it — froms3.amazonaws.com/bbop-sqlite, which is retired and answers 403 (#739). The 0-byteDownloading chebi.db.gzlines are that.#740 moves oaklib to a release that downloads from the CDN instead. Worth knowing before it lands: on a cache that holds
.dbwithout.gz, the first run after the merge will now actually fetch each.gz(ncbitaxon is the big one) — a bandwidth cost where there used to be a 403 — unlessontology_adapters._local_buildcatches it first, which it does for NCBITaxon but not for the sixconf/id_label_targets.yamladapters thatresolve_ontology_config.pydoes not find a local.dbfor.Raise the oaklib floor off the retired bbop-sqlite bucket (#740)