Skip to content

3.17.0

Choose a tag to compare

@rmcdaniel rmcdaniel released this 13 Nov 05:56
· 104 commits to main since this release
daa842c

PHP SDK 3.17.0 handles three Server behaviors: request-id conflicts on native Server 3.9.0, runs that close with work still open (Workflow 2.28.0), and the workflow-task completion size limit.

Added

  • Signal and update request-id conflicts (#397, server#934). SignalFailed and UpdateFailed gain conflict() (the parts that differ: name, arguments or target_or_arguments) and retainedCommandId() for a 409 request_id_conflict. ClusterInfo::supportsCommandRequestKeys() reads the command_request_keys capability. A refused command is sent once and never resent automatically.

Fixed

  • Oversized workflow-task completions (#400, .github#228). A 413 payload_too_large with limit_kind: workflow_task_completion_bytes raises WorkflowTaskCompletionTooLarge, which carries the limit and the size sent. The Worker never resends that completion. Instead it fails the run once with a Structural limit exceeded: failure that names both sizes and suggests splitting the fan-out, using child workflows or continuing as new. Before, the task came back after its lease expired and hit the same refusal again.
  • Replay of runs that closed with work still open (#398, workflow#1117). Workflow 2.28.0 records ActivityCancelled with cancellation_reason: run_closed for activities the workflow never awaited. The Replayer ignores those, so a caught all() failure keeps its replay time and a select() loser no longer resolves to the close's cancellation. A run_closed refusal of an activity outcome is final.

Everything else behaves as in 3.16.0.