Skip to content

Ambiguous Go SDK version in recursive loop detection docs — 'V2 SDK 1.57.0' doesn't match any published module version #493

@patrickwerz

Description

@patrickwerz

Page

Use Lambda recursive loop detection to prevent infinite loops — section "Supported AWS SDKs"

Issue

The table of minimum required SDK versions lists:

Runtime Minimum required AWS SDK version
Go V2 SDK 1.57.0

This version number is ambiguous and appears to be incorrect. The aws-sdk-go-v2 project uses independent versioning per module:

  • The core module (github.com/aws/aws-sdk-go-v2) is currently at v1.41.x — v1.57.0 has never been published.
  • Service modules each have their own version (e.g., service/sqs is at v1.42.x, service/s3 is at v1.99.x).

The recursion detection middleware (AddRecursionDetection) lives in the core module at aws/middleware/recursion_detection.go and was added in PR #2105 (April 2023), which shipped in core module version v1.18.0.

Impact

This causes real confusion for teams trying to determine if their Lambda function is affected by recursive loop detection. We encountered this while debugging a recursive loop termination event — our core SDK was at v1.41.2 (well above the actual minimum), yet the documentation stated 1.57.0 as the minimum, leading us to initially question whether the feature was active.

Suggested fix

Clarify which Go module the version refers to. For example:

Runtime Minimum required AWS SDK version
Go github.com/aws/aws-sdk-go-v2 v1.18.0 (core module)

Or if 1.57.0 refers to a specific service module, specify which one (e.g., service/s3 v1.57.0).

Additional context

  • The recursion detection middleware is in the core SDK and applies to all service client calls (SQS, S3, SNS, etc.).
  • It was introduced in core v1.18.0 (April 2023) as part of the initial recursion detection launch.
  • Unlike the other SDKs listed (Node.js, Python, Java, .NET, Ruby, PHP), the Go V2 SDK uses a monorepo with independent module versions, making a single version number inherently ambiguous.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions