Shard Iterator Expires Unexpectedly

  • A shard is a uniquely identified sequence of data records in a stream.

  • A stream is composed of one or more shards, each of which provides a fixed unit of capacity.

  • A new shard iterator is returned by every GetRecords request (as NextShardIterator).

    • You then use in the next GetRecords request (as ShardIterator).

  • Typically, this shard iterator does not expire before you use it.

    • However, you may find that shard iterators expire because you have not called GetRecords for more than 5 minutes, or because you've performed a restart of your consumer application.

  • If the shard iterator expires immediately, before you can use it, this might indicate that the DynamoDB table used by Kinesis does not have enough capacity to store the lease data.

    • This situation is more likely to happen if you have a large number of shards.

      • To solve this problem, increase the write capacity assigned to the shard table.

Last updated

Was this helpful?