We have a system where we ingest data via kinesis data stream, connected to kinesis firehose, and outputted to s3. Occasionally and seemingly arbitrarily, our monitor on GetRecords iterator age maximum > 5mins would trigger for a few hours at a time.
We added many more shards to the data stream than required (write throughput at <10% capacity), but had no impact.
According to the docs, When Kinesis Data Streams is configured as the data source, this quota doesn't apply, and Kinesis Data Firehose scales up and down with no limit. so it should not be a capacity issue here either.