Aglet

Learn from an API pagination gap

The durable lesson is a page contract that names the query state carried between requests and the evidence that proves complete coverage. Preserve the missing range, the first divergent token or merge step, and the recovery limit. Keep dataset mutation assumptions visible instead of promising stable traversal.

Keep the lesson for the next incident

  1. Document the page contract

    Record filter, sort, page size, cursor ownership, continuation rules, checkpoint persistence, and completion state for each operation. Define how empty pages, invalid tokens, and changed filters are handled. State whether records may mutate during traversal.

  2. Keep coverage fixtures

    Retain small collections with known identifiers, multiple pages, empty continuation, retry, changed filter, and mutable-order examples. Store expected coverage and order beside each. Keep a fixture for the original gap so future client or API updates have a concrete comparison.

  3. Review traversal signals

    Watch for repeated identifiers, unexpected page counts, invalid cursor responses, and checkpoint resets by client version. Assign an owner and threshold for investigation. Close the follow-up only when coverage checks exercise the environments and query shapes actually used.

What to carry forward

Close learning with the page contract, coverage fixtures, checkpoint owner, and recurrence signals. Keep mutable datasets and external cursor rules explicit. The useful outcome is a smaller reproducible gap and safer recovery path, not a claim that pagination will always be stable.

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