You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
'guidance' => 'Configure activity retries on a schedule_activity command, or child workflow retries on a start_child_workflow command. Workflow failure itself is non-retryable, and SDK HTTP transport retry is a client concern that does not appear in the workflow task command stream.',
46
+
],
47
+
'start_to_close_timeout' => [
48
+
'allowed' => ['schedule_activity'],
49
+
'guidance' => 'start_to_close_timeout limits one activity attempt and only applies to a schedule_activity command.',
50
+
],
51
+
'schedule_to_start_timeout' => [
52
+
'allowed' => ['schedule_activity'],
53
+
'guidance' => 'schedule_to_start_timeout limits queue wait before an activity attempt starts and only applies to a schedule_activity command.',
54
+
],
55
+
'schedule_to_close_timeout' => [
56
+
'allowed' => ['schedule_activity'],
57
+
'guidance' => 'schedule_to_close_timeout limits the entire activity execution including retries and only applies to a schedule_activity command.',
58
+
],
59
+
'heartbeat_timeout' => [
60
+
'allowed' => ['schedule_activity'],
61
+
'guidance' => 'heartbeat_timeout limits the gap between activity heartbeats and only applies to a schedule_activity command.',
62
+
],
63
+
'execution_timeout_seconds' => [
64
+
'allowed' => ['start_child_workflow'],
65
+
'guidance' => 'execution_timeout_seconds limits the entire child workflow execution and only applies to a start_child_workflow command.',
66
+
],
67
+
'run_timeout_seconds' => [
68
+
'allowed' => ['start_child_workflow'],
69
+
'guidance' => 'run_timeout_seconds limits one child workflow run and only applies to a start_child_workflow command.',
70
+
],
71
+
'non_retryable' => [
72
+
'allowed' => ['fail_workflow', 'fail_update'],
73
+
'guidance' => 'non_retryable marks a workflow or update failure as non-retryable and only applies to a fail_workflow or fail_update command. Activity non-retryable error types belong inside the schedule_activity retry_policy.non_retryable_error_types list.',
74
+
],
75
+
'parent_close_policy' => [
76
+
'allowed' => ['start_child_workflow'],
77
+
'guidance' => 'parent_close_policy declares how a child workflow reacts when its parent closes and only applies to a start_child_workflow command.',
78
+
],
79
+
'delay_seconds' => [
80
+
'allowed' => ['start_timer'],
81
+
'guidance' => 'delay_seconds is the timer delay and only applies to a start_timer command.',
82
+
],
83
+
'timeout_seconds' => [
84
+
'allowed' => ['open_condition_wait'],
85
+
'guidance' => 'timeout_seconds only applies to open_condition_wait. For activities use start_to_close_timeout / schedule_to_start_timeout / schedule_to_close_timeout / heartbeat_timeout; for child workflows use execution_timeout_seconds / run_timeout_seconds.',
86
+
],
87
+
];
88
+
27
89
/**
28
90
* @param list<array<string, mixed>> $commands
29
91
* @return list<array<string, mixed>>
@@ -42,6 +104,8 @@ public static function normalize(array $commands): array
'schedule_to_close_timeout (%d) must be greater than or equal to start_to_close_timeout (%d). schedule_to_close covers the whole activity execution including retries; one attempt cannot exceed the total budget.',
'heartbeat_timeout (%d) must be less than or equal to start_to_close_timeout (%d). heartbeat_timeout polices liveness within one attempt and cannot exceed the per-attempt budget.',
646
+
$heartbeat,
647
+
$startToClose,
648
+
),
649
+
];
650
+
}
651
+
}
652
+
653
+
/**
654
+
* Child workflow timeout fields must form a coherent envelope:
655
+
* execution_timeout_seconds covers the whole child execution across runs,
656
+
* so it cannot be smaller than run_timeout_seconds, which limits one run.
'execution_timeout_seconds (%d) must be greater than or equal to run_timeout_seconds (%d). execution_timeout_seconds covers the whole child workflow execution; one run cannot exceed the total budget.',
0 commit comments