What's Changed
[1.5.24] — 2026-10-08
Added
- API Gateway v1 — richer SQS request templates — templates now support
#set,##and#* *#comments, quiet$!references, double-quoted strings with interpolation and""escapes, and$context.authorizervalues including Cognito claims. Reported by @teruyukisuda.
Fixed
- API Gateway —
CreateApiKeykeepsvalueandcustomerId— the key always got a generated value. A value under 20 characters returnsBadRequestException"API Key value should be at least 20 characters". Reported by @mjuen. - CloudWatch — CBOR timestamps — timestamps from clients using the CBOR protocol are now read as UTC. Reported by @DimQ1.
- Container reaping — failed removals are logged — containers the reaper could not remove are logged at
WARNINGwith their ids. Reported by @iot-rocket. - DynamoDB Streams — iterator expiry and
GetRecordslimits — shard iterators expire after 15 minutes withExpiredIteratorException, a page stops at 1 MB, a position behind the trim horizon returnsTrimmedDataAccessException, and an unknown shard returnsResourceNotFoundException. Reported by @DimQ1. - Lambda — a returned string is JSON-encoded —
Invokereturnedhelloinstead of"hello". Reported by @edu-shippo. - Lambda — local Node.js console logs — the one-shot local executor mixed stdout into the
Invokeresponse. Logs now go to the invocation log and stdout carries only the return value. Contributed by @gakuto-cw21. - Pipes — SNS FIFO targets are refused —
CreatePipeandUpdatePipenow return "SNS FIFO topics are not supported as a pipe target.". Reported by @DimQ1. - S3 Tables — Iceberg REST catalogs and commits — every catalog read the first catalog's warehouse; each is now scoped to its table bucket ARN. Commits now check update requirements (
CommitFailedException, 409) and keep snapshot sequence numbers consistent. - SES — non-ASCII addresses — an address with non-ASCII characters returns
InvalidParameterValue"Missing final '@Domain'". Reported by @DimQ1. - SNS — filter policies —
FilterPolicyScopeMessageBodywas ignored andsuffixandequals-ignore-casenever matched. Both scopes now apply, withwildcard,cidrand"exists": falsetoo. Reported by @DimQ1. - SQS — retention and dead-letter moves — messages now expire after
MessageRetentionPeriod. A message moved to a dead-letter queue keeps its enqueue time on standard queues and carriesDeadLetterQueueSourceArn. Reported by @DimQ1. - Step Functions — a Lambda that returns
nulloutputsnull— the Task output was{}. Reported by @edu-shippo.