Summary
Paginating a Scan over a GSI whose items share the same sort-key value loses data, surfaced by the dynamodb-conformance suite (Dynoxide 0.9.13).
With five items tied on the GSI sort key and Limit: 1, a full paged walk returns only ['id-0'] and stops, instead of visiting all five. The LastEvaluatedKey for an index scan must carry the base-table key alongside the index keys so tied entries can be disambiguated and the walk can advance.
Query over the same tied GSI/LSI keys already composes the continuation key correctly and walks every item; only Scan on an index is affected. This is a data-loss bug under pagination, so worth prioritising.
Summary
Paginating a
Scanover a GSI whose items share the same sort-key value loses data, surfaced by the dynamodb-conformance suite (Dynoxide 0.9.13).With five items tied on the GSI sort key and
Limit: 1, a full paged walk returns only['id-0']and stops, instead of visiting all five. TheLastEvaluatedKeyfor an index scan must carry the base-table key alongside the index keys so tied entries can be disambiguated and the walk can advance.Query over the same tied GSI/LSI keys already composes the continuation key correctly and walks every item; only
Scanon an index is affected. This is a data-loss bug under pagination, so worth prioritising.