Skip to content

Conversation

@alessandrobologna
Copy link
Contributor

Summary

  • Fix incorrect key name in Operation.from_dict() that caused invoke() to return None
  • Changed key from snake_case "chained_invoke_details" to PascalCase "ChainedInvokeDetails" to match API response format
  • Added missing assertions in test_operation_from_dict_complete to prevent regression

Root Cause

In src/aws_durable_execution_sdk_python/lambda_service.py at line 752, the deserialization method used "chained_invoke_details" (snake_case) instead
of "ChainedInvokeDetails" (PascalCase), which is inconsistent with:

  1. Other detail fields that correctly use PascalCase: "StepDetails", "WaitDetails", "CallbackDetails"
  2. The corresponding to_dict() method which correctly uses "ChainedInvokeDetails"
  3. The API response format

Test plan

  • All existing tests pass (924 tests)
  • Coverage maintained at 98.67% (above required 98%)
  • Added assertion to verify chained_invoke_details is properly deserialized
  • Linting passes (ruff check and ruff format --check on changed files)

Fixes #237

- Change key from snake_case "chained_invoke_details" to PascalCase
  "ChainedInvokeDetails" in Operation.from_dict() to match API response
- Add missing assertions in test_operation_from_dict_complete to verify
  chained_invoke_details is properly deserialized

Fixes aws#237
@alessandrobologna alessandrobologna changed the title fix: use correct key name for ChainedInvokeDetails deserialization fix: correct ChainedInvokeDetails key in from_dict Dec 8, 2025
@alessandrobologna
Copy link
Contributor Author

Closing and re-opening due to wrong format for the title

Copy link
Member

@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.

:shipit:

@yaythomas yaythomas merged commit cbc3bf9 into aws:main Dec 8, 2025
10 of 15 checks passed
@yaythomas
Copy link
Member

Thank you so much @alessandrobologna! 🙌

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: invoke() returns None due to incorrect key name in ChainedInvokeDetails deserialization

2 participants