Aglet

Verify API cursor pagination continuity

A pagination fix must preserve coverage and order while handling invalid or exhausted cursors clearly. Exercise two and three pages, a retry, an empty continuation, and a changed filter. Inspect the final identifiers and checkpoint state rather than trusting the number of HTTP responses.

Check whether the outcome improved

  1. Define coverage and order

    For each fixture, write expected identifiers, order, page boundaries, and final checkpoint. State whether an empty page ends the traversal or requests another cursor. Keep a duplicate identifier visible in the expected result so merge behavior is testable.

  2. Run normal and interrupted walks

    Traverse the fixtures with the real client, including a retry after a response timeout and a process restart between pages. Confirm filters and sort remain unchanged. Check that a repeated page is deduplicated only when identity rules permit it and is otherwise surfaced.

  3. Test cursor and filter edges

    Use an expired or malformed cursor, a changed filter, a mutable collection, and a missing continuation link. Verify each produces the documented state and no silent broad query. Compare stored checkpoints and returned identifiers after every run.

What to carry forward

Accept when every supported fixture has expected identifier coverage and order, retries do not lose or duplicate safe records, and invalid cursors fail visibly. Keep coverage partial for untested mutation semantics. Record query shapes, client revision, fixtures, and final checkpoint results.

Technical background: Contentful technical guide.

Keep the decision with the work.

Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.

Create an account See the product workflow