Skip to content

fix: extend Lambda read_timeout, disable retries#204

Merged
yaythomas merged 1 commit intoaws:mainfrom
willmizzi:fix/lambda-client-read-timeout
Apr 20, 2026
Merged

fix: extend Lambda read_timeout, disable retries#204
yaythomas merged 1 commit intoaws:mainfrom
willmizzi:fix/lambda-client-read-timeout

Conversation

@willmizzi
Copy link
Copy Markdown
Contributor

Issue #, if available:
#203

Description of changes:

Fixes a crash of SAM local RIE during long-running durable Lambda steps.

botocore's default read_timeout of 60s was being used for local-runner Lambda
invocations made by this testing library, so any durable step that ran longer
than 60s would cause a client-side ReadTimeoutError. The default
max_attempts=3 retry policy then re-invoked the still-running Lambda,
compounding the problem.

This change routes Lambda-invocation client construction inside the library
through a single helper that applies a consistent botocore.config.Config:

  • read_timeout=960 seconds (Lambda's 900s max runtime + headroom for network
    round-trip and SAM local RIE startup).
  • retries={"max_attempts": 0} — client-side retries disabled.

Manually tested against the reproduction in the original issue and confirmed that steps running longer than 60s don't cause a crash.

Dependencies

If this PR requires testing against a specific branch of the Python Language SDK (e.g., for unreleased changes), uncomment and specify the branch below. Otherwise, leave commented to use the main branch.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

- Introduce a shared Lambda client config with a 960s read_timeout
  and retries disabled
- Route all Lambda client construction through a single helper
Copy link
Copy Markdown
Contributor

@yaythomas yaythomas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given the CI failure for unrelated reasons, I ran these checks locally

# just test
hatch test

# coverage
hatch run test:cov

# type checks
hatch run types:check

# static analysis
hatch fmt

@yaythomas
Copy link
Copy Markdown
Contributor

this is an excellent contribution, thank you so much @willmizzi! 🙇 🧙 🚀

@yaythomas yaythomas merged commit d5853f9 into aws:main Apr 20, 2026
2 of 56 checks passed
@github-project-automation github-project-automation bot moved this from In review to Done in aws-durable-execution Apr 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants