Build a useful investigation brief
Freeze the result set
Build a bounded fixture with enough records to cross several pages, including equal sort values, records at limits, and a changed record if mutation matters. Record expected order and complete identifier set before running the traversal. Use fixed filters and a known page size.
Trace request state
Log each page input, cursor or offset, sort fields, filters, response identifiers, next marker, and termination decision. Compare the last item used to advance with the first item returned next. Identify dropped parameters, inclusive boundaries, integer conversion, or stale state.
Test traversal hypotheses
Vary one condition at a time: page size, tie-breaking field, cursor boundary, offset, source mutation, or filter serialization. Compare the traversed set with the expected set after every page. If multiple causes remain possible, state the missing observation and preserve all divergent sequences.
What to carry forward
Produce a replayable brief containing the fixture, full page sequence, request state, expected order, divergent boundary, and tested hypotheses. Recommend the smallest traversal correction or contract clarification. Do not call a page gap fixed when the result set can change and coverage has no stable denominator.
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