Skip to content

Both Engine A gates report SKIPPED, NOT PASSED on main — 20 GB of cache restored and no ontology reachable #732

Open

Description

@realmarcin

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.

Not addressed by #731

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.

Activity

  1. realmarcin commented on Sep 6, 2026

    @realmarcin
    ContributorAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions