Skip to content

fix: fail invalid polling state#575

Merged
yaythomas merged 1 commit into
aws:mainfrom
Sanjays2402:fix/wait-condition-deserialization
Jul 23, 2026
Merged

fix: fail invalid polling state#575
yaythomas merged 1 commit into
aws:mainfrom
Sanjays2402:fix/wait-condition-deserialization

Conversation

@Sanjays2402

Copy link
Copy Markdown
Contributor

Closes #574

Checkpoint deserialization failures now follow the existing terminal failure path, recording a FAIL checkpoint and surfacing WaitForConditionError instead of restarting polling from initial_state.

Tests: 37 focused tests passed; Ruff check and format passed.

Propagate checkpoint deserialization failures through the existing terminal operation error path instead of restarting from the initial state.\n\nUpdate the regression test to require a FAIL checkpoint and typed wait-for-condition error.

@yaythomas yaythomas left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

:shipit:

thank you so much @Sanjays2402, great contribution, welcome to dex!

I also ran the compliance test suite myself, no regression:
--- Validating test description 6-1 (WaitForConditionBasic) ---
Invoking WaitForConditionBasic with event from 6-1.yaml ...
✅ PASSED
Placeholders: {'ID1': '1ced8f5be2db23a6513eba4d819c73806424748a7bc6fa0d792cc1c7d1775a97'}

--- Validating test description 6-2 (WaitForConditionImmediate) ---
Invoking WaitForConditionImmediate with event from 6-2.yaml ...
✅ PASSED
Placeholders: {'ID1': '1ced8f5be2db23a6513eba4d819c73806424748a7bc6fa0d792cc1c7d1775a97'}

--- Validating test description 6-3 (WaitForConditionWithName) ---
Invoking WaitForConditionWithName with event from 6-3.yaml ...
✅ PASSED
Placeholders: {'ID1': '1ced8f5be2db23a6513eba4d819c73806424748a7bc6fa0d792cc1c7d1775a97'}

--- Validating test description 6-4 (WaitForConditionCustomInitialState) ---
Invoking WaitForConditionCustomInitialState with event from 6-4.yaml ...
✅ PASSED
Placeholders: {'ID1': '1ced8f5be2db23a6513eba4d819c73806424748a7bc6fa0d792cc1c7d1775a97'}

--- Validating test description 6-5 (WaitForConditionFixedDelay) ---
Invoking WaitForConditionFixedDelay with event from 6-5.yaml ...
✅ PASSED
Placeholders: {'ID1': '1ced8f5be2db23a6513eba4d819c73806424748a7bc6fa0d792cc1c7d1775a97'}

--- Validating test description 6-6 (WaitForConditionMaxAttempts) ---
Invoking WaitForConditionMaxAttempts with event from 6-6.yaml ...
✅ PASSED
Placeholders: {'ID1': '1ced8f5be2db23a6513eba4d819c73806424748a7bc6fa0d792cc1c7d1775a97'}

--- Validating test description 6-7 (WaitForConditionCheckThrows) ---
Invoking WaitForConditionCheckThrows with event from 6-7.yaml ...
✅ PASSED
Placeholders: {'ID1': '1ced8f5be2db23a6513eba4d819c73806424748a7bc6fa0d792cc1c7d1775a97'}

--- Validating test description 6-8 (WaitForConditionCheckThrowsCaught) ---
Invoking WaitForConditionCheckThrowsCaught with event from 6-8.yaml ...
✅ PASSED
Placeholders: {'ID1': '1ced8f5be2db23a6513eba4d819c73806424748a7bc6fa0d792cc1c7d1775a97'}

--- Validating test description 6-9 (WaitForConditionComplexObject) ---
Invoking WaitForConditionComplexObject with event from 6-9.yaml ...
✅ PASSED
Placeholders: {'ID1': '1ced8f5be2db23a6513eba4d819c73806424748a7bc6fa0d792cc1c7d1775a97'}

--- Validating test description 6-10 (WaitForConditionNullResult) ---
Invoking WaitForConditionNullResult with event from 6-10.yaml ...
✅ PASSED
Placeholders: {'ID1': '1ced8f5be2db23a6513eba4d819c73806424748a7bc6fa0d792cc1c7d1775a97'}

--- Validating test description 6-11 (WaitForConditionCustomSerdes) ---
Invoking WaitForConditionCustomSerdes with event from 6-11.yaml ...
✅ PASSED
Placeholders: {'ID1': '1ced8f5be2db23a6513eba4d819c73806424748a7bc6fa0d792cc1c7d1775a97'}

--- Validating test description 6-12 (WaitForConditionThenStep) ---
Invoking WaitForConditionThenStep with event from 6-12.yaml ...
✅ PASSED
Placeholders: {'ID1': '1ced8f5be2db23a6513eba4d819c73806424748a7bc6fa0d792cc1c7d1775a97', 'ID2': 'c5faca15ac2f93578b39ef4b6bbb871bdedce4ddd584fd31f0bb66fade3947e6'}

--- Validating test description 6-13 (WaitForConditionMultipleSequential) ---
Invoking WaitForConditionMultipleSequential with event from 6-13.yaml ...
✅ PASSED
Placeholders: {'ID1': '1ced8f5be2db23a6513eba4d819c73806424748a7bc6fa0d792cc1c7d1775a97', 'ID2': 'c5faca15ac2f93578b39ef4b6bbb871bdedce4ddd584fd31f0bb66fade3947e6'}

@yaythomas
yaythomas merged commit c183ec8 into aws:main Jul 23, 2026
7 of 20 checks passed
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]: wait_for_condition silently resets to initial_state when checkpointed state fails to deserialize

2 participants