What's Changed
New Contributors
- @AdigaAkhil made their first contribution in #271
[1.2.6] — 2026-04-12
Fixed
- EFS timestamp format —
CreationTimenow returns integer epoch seconds instead of ISO string, fixing Java SDK v2 unmarshalling errors. - ECS timestamps —
createdAtand other timestamp fields now return integer epoch seconds instead of floats with sub-second precision. - DynamoDB
X-Amz-Crc32header — all DynamoDB responses now include the CRC32 checksum header, fixing Go SDK v2failed to close HTTP response bodywarnings. - EC2 DescribeInternetGateways not-found — returns
InvalidInternetGatewayID.NotFoundfor nonexistent IDs. - EC2 CreateVpc CIDR validation — rejects invalid CIDR blocks with
InvalidParameterValue. - EC2 duplicate security group rule —
AuthorizeSecurityGroupIngressreturnsInvalidPermission.Duplicatefor existing rules. - EC2 CreateVolume/CreateSnapshot TagSpecifications — tags specified in
TagSpecificationsare now persisted. - ElastiCache CreateCacheSubnetGroup —
DescribeCacheSubnetGroupsnow returns theSubnetslist with subnet identifiers and availability zones. - SNS error code —
GetTopicAttributes,Publish, and other operations on nonexistent topics now returnNotFoundinstead ofNotFoundException, matching real AWS. - LocalStack init script path compatibility — now supports
/etc/localstack/init/ready.d/in addition to/docker-entrypoint-initaws.d/ready.d/for drop-in LocalStack replacement. Contributed by @AdigaAkhil (#271) - CloudWatch error response protocol mismatch — error responses now match the request protocol (JSON errors for JSON requests, CBOR errors for CBOR requests). Previously, JSON-protocol requests received CBOR-encoded errors causing boto3
UnicodeDecodeError. - AppSync apiId length —
CreateGraphQLApinow generates 26-character alphanumeric IDs matching real AWS format. Previously 8 characters, which broke boto3 ARN validation for tag operations. - EC2 CreateTags persistence — tags applied via
CreateTagsnow appear inDescribeVpcs,DescribeSubnets,DescribeSecurityGroups, andDescribeInternetGateways. Previously returned empty<tagSet/>. - EC2 RunInstances TagSpecifications — tags specified in
TagSpecificationswithResourceType=instanceare now persisted and returned inDescribeInstances. - EC2 Describe not-found errors —
DescribeVpcs,DescribeSubnets,DescribeSecurityGroups,DescribeKeyPairs,DescribeInstances,DescribeVolumes,DescribeSnapshotsnow return proper AWS error codes (InvalidVpcID.NotFound, etc.) when specific IDs are requested but don't exist. - EFS not-found errors —
DescribeFileSystemsandDescribeMountTargetsnow returnFileSystemNotFound/MountTargetNotFoundfor nonexistent IDs. - ELBv2 not-found errors —
DescribeLoadBalancers,DescribeTargetGroupsreturn proper errors for nonexistent ARNs/names.DeleteListener,DeleteTargetGroupreturn errors for nonexistent ARNs. - ElastiCache not-found errors —
DescribeCacheSubnetGroups,DeleteCacheSubnetGroup,DescribeCacheParameterGroups,DeleteCacheParameterGroupnow return properCacheSubnetGroupNotFoundFault/CacheParameterGroupNotFounderrors. - Glue validation —
CreateTablerejects nonexistent database,CreateCrawlerrejects duplicate names,DeleteTable/DeleteConnectionreturnEntityNotFoundExceptionfor nonexistent resources. - CloudFront CallerReference idempotency —
CreateDistributionwith a duplicateCallerReferencereturns the existing distribution instead of creating a duplicate. - WAFv2 LockToken enforcement —
UpdateWebACLvalidatesLockTokenand returnsWAFOptimisticLockExceptionfor stale tokens. - WAFv2 duplicate name —
CreateWebACLrejects duplicate names within the same scope withWAFDuplicateItemException. - ServiceDiscovery duplicate namespace —
CreateHttpNamespacerejects duplicate names withNamespaceAlreadyExists. - AutoScaling DescribePolicies — response now includes
AdjustmentType,ScalingAdjustment, andCooldownfields. - ECS TagResource validation — rejects nonexistent resource ARNs with
InvalidParameterException. - EC2 DescribeVpcs filters — filters parameter (
owner-id,vpc-id,cidr,state,is-default,tag:*) now applied correctly. Previously silently ignored.