Skip to content

[Bug]: [Bug]: ParamValidationError: Invalid length for parameter CheckpointToken during context.wait() #565

Description

@Lmex89vexi

Expected Behavior

Description
When suspending an execution using context.wait(), the background state-syncing thread crashes with a botocore.exceptions.ParamValidationError.

The lambda_service.py client appears to be passing an empty string ("") or invalid zero-length value for the CheckpointToken parameter during the checkpoint_durable_execution API call. Boto3 validation requires this parameter to have a minimum length of 1 if it is included in the payload.

Actual Behavior

Actual Behavior
The checkpoint fails immediately during Boto3 parameter validation before the network request is made, crashing the background thread.

Environment Details
SDK Version: 1.5.0

Python Version: 3.13

Execution Environment: AWS Lambda

OS: Amazon Linux 2023 (Lambda standard runtime)

Steps to Reproduce

Steps to Reproduce
Initialize a durable execution inside an AWS Lambda function running the python3.13 runtime.

Invoke context.wait(Duration.from_seconds(35)) (or similar duration).

The SDK's background checkpointing process triggers lambda_service.checkpoint().

Observe the ParamValidationError in CloudWatch logs and the resulting BackgroundThreadError.

Expected Behavior
The SDK should successfully checkpoint the execution state. If a CheckpointToken is not yet available or is empty, the SDK should omit the parameter from the checkpoint_durable_execution kwargs rather than passing a zero-length string.

SDK Version

1.5.0

Python Version

3.13

Is this a regression?

No

Last Working Version

No response

Additional Context

No response

Metadata

Metadata

Assignees

Labels

SDKrelated to the AWS Durable Execution SDKbug

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions