Published failure
Python SDK 2.4.2 maps an accepted update's handler failure (HTTP 422, update_status=failed) to InvalidArgument with an empty message. The Server response supplies failure_message, failure_id, update_id and run identity, but the SDK discards that response. Callers cannot distinguish a failed handler from malformed arguments or inspect the durable failure.
Confirmed in Sample App's live published update run, using PHP 2.2.3, Python 2.4.2, Rust 3.3.0 and Server 2.5.9 at sha256:11c11e11498b63e644d906e43f49810a1bc0b5298f750734fe0edb279c622bca. The durable UpdateCompleted event records codec error: update-probe-failure, a failure identity and the original accepted update. The Python exception is InvalidArgument('').
Acceptance
- Return a public typed
UpdateFailed exception for a durably accepted handler failure, with a useful message, HTTP status, original response and workflow/run/update/failure identities.
- Preserve existing catch compatibility and distinguish argument errors, validator rejection and validation infrastructure failures.
- Cover both async and sync clients, message fallback and duplicate failed-update requests.
- Publish a qualified patch and update Sample App's tuple. Its real published client must assert the diagnostic against the durable failure and original identities, with one failed completion and a live original workflow.
Part of durable-workflow/.github#122. Source CI and the complete live published update experiment are required before closing.
Published failure
Python SDK 2.4.2 maps an accepted update's handler failure (HTTP 422,
update_status=failed) toInvalidArgumentwith an empty message. The Server response suppliesfailure_message,failure_id,update_idand run identity, but the SDK discards that response. Callers cannot distinguish a failed handler from malformed arguments or inspect the durable failure.Confirmed in Sample App's live published update run, using PHP 2.2.3, Python 2.4.2, Rust 3.3.0 and Server 2.5.9 at
sha256:11c11e11498b63e644d906e43f49810a1bc0b5298f750734fe0edb279c622bca. The durableUpdateCompletedevent recordscodec error: update-probe-failure, a failure identity and the original accepted update. The Python exception isInvalidArgument('').Acceptance
UpdateFailedexception for a durably accepted handler failure, with a useful message, HTTP status, original response and workflow/run/update/failure identities.Part of durable-workflow/.github#122. Source CI and the complete live published update experiment are required before closing.