Skip to content

Align parallel checkpoint with other SDKs: always emit SUCCEED#2426

Closed
GarrettBeatty wants to merge 2 commits into
devfrom
fix/parallel-checkpoint-align-succeed
Closed

Align parallel checkpoint with other SDKs: always emit SUCCEED#2426
GarrettBeatty wants to merge 2 commits into
devfrom
fix/parallel-checkpoint-align-succeed

Conversation

@GarrettBeatty

Copy link
Copy Markdown
Contributor

Summary

  • The parent parallel context now always checkpoints as Action=SUCCEED with the summary in Payload, matching the Python/JS/Java SDKs' wire format.
  • Previously the C# SDK emitted Action=FAIL for FailureToleranceExceeded, which left ContextDetails.Result empty (the wire protocol forbids Payload on FAIL updates) and diverged from the cross-SDK contract.
  • ParallelException is now thrown SDK-side after the checkpoint, based on CompletionReason in the reconstructed BatchResult.
  • The replay test now models a SUCCEEDED parent with the summary in ContextDetails.Result, matching real service behavior.

Test plan

  • ParallelAsync_ReplayFailed_ThrowsParallelException updated and passing
  • All 38 parallel operation tests pass
  • Full test suite (358 tests) passes on both net8.0 and net10.0

The parent parallel context now always checkpoints as Action=SUCCEED
with the summary (including CompletionReason) in the Payload field,
matching the wire format used by the Python, JS, and Java SDKs.

Previously the C# SDK emitted Action=FAIL for FailureToleranceExceeded,
which left ContextDetails.Result empty (Payload is forbidden on FAIL
updates) and diverged from the cross-SDK wire contract. The
ParallelException is now thrown SDK-side after the checkpoint based on
the CompletionReason in the reconstructed BatchResult.
@GarrettBeatty GarrettBeatty requested review from a team as code owners June 16, 2026 17:34
@GarrettBeatty GarrettBeatty requested review from normj and philasmar June 16, 2026 17:34
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.

1 participant