Keep the lesson for the next incident
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.
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.
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