Record that limit is inert without page #7

Merged
stephen merged 1 commit from gaps/limit-needs-page into main 2026-10-01 16:01:55 +00:00
Owner

Adds gap 9. A request carrying limit and no page is served unpaged: the filters apply, the page size does not, and the response is the complete matching set.

Probed on rasterhub.com (Forgejo 16.0.4) against a repository with 3,474 workflow runs. actions/runs?limit=30 returned all 3,474 as a 49.4 MB body in 32.1s; ?page=1&limit=30 returned 30 in 2.5s. A status=failure filter behaves the same way: applied, unpaged, all 418 matches.

Worth an entry because it is silent and mis-shaped. The response is 200 OK with correct contents, so it reads as a slow server, and a consumer behind a proxy sees only a gateway error. Fjord iOS diagnosed it twice as an action_run index problem on the forge before anyone read the query string.

Verified on a different server and version from the header table (which covers gaps 1-8), so the entry states its own context.

Adds gap 9. A request carrying `limit` and no `page` is served unpaged: the filters apply, the page size does not, and the response is the complete matching set. Probed on `rasterhub.com` (Forgejo 16.0.4) against a repository with 3,474 workflow runs. `actions/runs?limit=30` returned all 3,474 as a 49.4 MB body in 32.1s; `?page=1&limit=30` returned 30 in 2.5s. A `status=failure` filter behaves the same way: applied, unpaged, all 418 matches. Worth an entry because it is silent and mis-shaped. The response is 200 OK with correct contents, so it reads as a slow server, and a consumer behind a proxy sees only a gateway error. Fjord iOS diagnosed it twice as an `action_run` index problem on the forge before anyone read the query string. Verified on a different server and version from the header table (which covers gaps 1-8), so the entry states its own context.
Record that limit is inert without page
All checks were successful
CI / Contract drift (pull_request) Successful in 6s
59bf46432b
A limit with no page is served unpaged: filters applied, page size
ignored, complete matching set returned. Probed on live 16.0.4, where
actions/runs?limit=30 against 3,474 runs answered with all of them as a
49 MB body in 32s, and the same query with page=1 answered in 2.5s.

It reads as a slow server rather than a bad request, which is how it
cost Fjord iOS two rounds of diagnosis on the wrong layer.
stephen deleted branch gaps/limit-needs-page 2026-10-01 16:01:55 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rasterstate/forgejo-api-contract!7
No description provided.