Files
OrbitTv/VERIFICATION-0.20.0.md
pauljdandClaude Opus 5.5 cddc2396d9
pauljd/davidson-ci: Davidson CI / quality (push) Failing after 1m57s
pauljd/davidson-ci: Davidson CI / ai-review (push) Successful in 1m8s
Recover from slow provider pages during import (0.20.0)
The full import stopped at position 65,200 and each retry failed. Gives
catalogue pages a longer timeout, retries slow pages at smaller sizes,
stops asking for a total after the first page, and reports what happened.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-11-01 19:42:36 +00:00

1.8 KiB

Orbit TV 0.20.0 — import recovery

Reported on the box: the full import stopped at position 65,200, and each later press failed about 20 seconds in with "could not be reached". The provider's public endpoint answered in about 0.2 seconds from the same connection, so a block on the connection looks unlikely. The app's 15-second read timeout was reported as "could not be reached", so the leading explanation is that deep pages are too slow to answer. That is unconfirmed: nothing recorded the real cause, and one bad record is also possible.

Changes: catalogue pages get a 60-second read timeout. A timeout now reads "took too long", separately from a failed connection. A timeout, dropped connection or 5xx retries with a smaller page (200, 100, 50, 25) and waits of 5, 10, 15 and 20 seconds, then stops after five tries and names the position. Page size stays reduced for the rest of the run. Rate-limit, login and permission replies still stop at once. Only the first page asks the provider for a total (EnableTotalRecordCount=false afterwards, a parameter not in the published list). The screen reports retries, the slowest page and the page size. Database format is unchanged, so position 65,200 carries over.

If this still fails, the next step is paging by name (NameStartsWithOrGreater with SortName) instead of by deep offset, which would restart the import.

Validation: offline assembleDebug, testDebugUnitTest and lintDebug passed; 112 unit tests (108 existing, 4 new), zero failures or errors, no lint errors. Fixture tests cover smaller retries with no missed titles, 5xx against refusal, giving up after five tries with finished pages kept, and first-page-only totals. A real slow provider can only be tested on the box.

Rollback: reinstall outputs/revision-0.19.0, whose database format is the same, or revert this commit.