Skip to content

Report a failed coverage check as unknown, and treat the iBabs timeout as one - #336

Closed
joepio wants to merge 1 commit into
mainfrom
claude/309-coverage-errors
Closed

joepio wants to merge 1 commit into
mainfrom
claude/309-coverage-errors

Conversation

@joepio

@joepio joepio commented Oct 5, 2026

Copy link
Copy Markdown
Member

Requested by Joep · project thread

Before: when the weekly coverage check failed for a source, /api/status published supplierDocuments, heldDocuments and missingDocuments as 0 and ratio as 1. Texel, with 5,890 indexed documents and a supplier timeout, read as complete. And the iBabs error "Execution Timeout Expired" (a Status=ERR inside an HTTP 200) was not recognised as a timeout, so the adaptive window halving never applied to it.

After: with error set, those four fields are null, missingSample is empty and lowerBound is true. "Execution Timeout Expired" counts as a timeout in isSoapTimeout.

How: toSourceCoverage in web/status_api.ts returns nulls for a failed check (the stored zeros stay in the database), the SourceCoverage type in src/types.ts allows null, and API.md documents it. Tests in tests/coverage_check.test.ts and tests/ibabs.test.ts.

This does not by itself fix Rotterdam or Texel. The nightly run covers 14 days and only splits from 28 days, and the run issue names only the step ingest_quickwit, so which SOAP call times out is not known. The logs of a failing run are needed for that.

The four numbers becoming nullable is a change to the public status contract, for consumers that read them without checking error.

Refs #309


Generated by Claude Code

…t as one

A coverage check that failed stored 0/0/0 and /api/status published them as a
ratio of 1, so Texel read as complete while its supplier timed out. With
`error` set, supplierDocuments, heldDocuments, missingDocuments and ratio are
now null.

iBabs reports its own database timeout as Status=ERR in an HTTP 200, worded
"Execution Timeout Expired". isSoapTimeout only matched "timed out", so the
adaptive window halving never applied to it.
@joepio joepio self-assigned this Oct 5, 2026
@joepio joepio closed this Oct 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants