Get desktop application:
View/edit binary Protocol Buffers messages
Status of a standalone activity. The status is updated once, when the activity is originally scheduled, and again when the activity reaches a terminal status. (-- api-linter: core::0216::synonyms=disabled aip.dev/not-precedent: Named consistently with WorkflowExecutionStatus. --)
Used in: ,
The activity has not reached a terminal status. See PendingActivityState for the run state (SCHEDULED, STARTED, or CANCEL_REQUESTED).
The activity completed successfully. An activity can complete even after cancellation is requested if the worker calls RespondActivityTaskCompleted before acknowledging cancellation.
The activity failed. Causes: - Worker returned a non-retryable failure - RetryPolicy.maximum_attempts exhausted - Attempt failed after cancellation was requested (retries blocked)
The activity was canceled. Reached when: - Cancellation requested while SCHEDULED (immediate), or - Cancellation requested while STARTED and worker called RespondActivityTaskCanceled. Workers discover cancellation requests via heartbeat responses (cancel_requested=true). Activities that do not heartbeat will not learn of cancellation and may complete, fail, or time out normally. CANCELED requires explicit worker acknowledgment or immediate cancellation of a SCHEDULED activity.
The activity was terminated. Immediate; does not wait for worker acknowledgment.
The activity timed out. See TimeoutType for the specific timeout. - SCHEDULE_TO_START and SCHEDULE_TO_CLOSE timeouts always result in TIMED_OUT. - START_TO_CLOSE and HEARTBEAT may retry if RetryPolicy permits; TIMED_OUT is reached when retry is blocked (RetryPolicy.maximum_attempts exhausted, SCHEDULE_TO_CLOSE would be exceeded, or cancellation has been requested).
Defines what to do when trying to start an activity with the same ID as a *running* activity. Note that it is *never* valid to have two running instances of the same activity ID. See `ActivityIdReusePolicy` for handling activity ID duplication with a *closed* activity.
Used in:
Don't start a new activity; instead return `ActivityExecutionAlreadyStarted` error.
Don't start a new activity; instead return a handle for the running activity.
Defines whether to allow re-using an activity ID from a previously *closed* activity. If the request is denied, the server returns an `ActivityExecutionAlreadyStarted` error. See `ActivityIdConflictPolicy` for handling ID duplication with a *running* activity.
Used in:
Always allow starting an activity using the same activity ID.
Allow starting an activity using the same ID only when the last activity's final state is one of {failed, canceled, terminated, timed out}.
Do not permit re-use of the ID for this activity. Future start requests could potentially change the policy, allowing re-use of the ID.
Used in:
Expected application error with little/no severity.
Used in: ,
Used in: ,
Used in:
Specifies which category of tasks may reach a versioned worker of a certain Build ID. Task Reachability is eventually consistent; there may be a delay (up to few minutes) until it converges to the most accurate value but it is designed in a way to take the more conservative side until it converges. For example REACHABLE is more conservative than CLOSED_WORKFLOWS_ONLY. Note: future activities who inherit their workflow's Build ID but not its Task Queue will not be accounted for reachability as server cannot know if they'll happen as they do not use assignment rules of their Task Queue. Same goes for Child Workflows or Continue-As-New Workflows who inherit the parent/previous workflow's Build ID but not its Task Queue. In those cases, make sure to query reachability for the parent/previous workflow's Task Queue as well.
Used in:
Task reachability is not reported
Build ID may be used by new workflows or activities (base on versioning rules), or there MAY be open workflows or backlogged activities assigned to it.
Build ID does not have open workflows and is not reachable by new workflows, but MAY have closed workflows within the namespace retention period. Not applicable to activity-only task queues.
Build ID is not used for new executions, nor it has been used by any existing execution within the retention period.
State of a callback.
Used in: ,
Default value, unspecified state.
Callback is standing by, waiting to be triggered.
Callback is in the queue waiting to be executed or is currently executing.
Callback has failed with a retryable error and is backing off before the next attempt.
Callback has failed.
Callback has succeeded.
Callback is blocked (eg: by circuit breaker).
Used in:
Whenever this list of command types is changed do change the function shouldBufferEvent in mutableStateBuilder.go to make sure to do the correct event ordering.
Used in:
Used in: , ,
The workflow itself requested to continue as new
The workflow continued as new because it is retrying
The workflow continued as new because cron has triggered a new execution
Experimental. Defines the versioning behavior to be used by the first task of a new workflow run in a continue-as-new chain.
Used in: , , ,
Experimental. Start the new run with AutoUpgrade behavior. Use the Target Version of the workflow's task queue at start-time, as AutoUpgrade workflows do. After the first workflow task completes, use whatever Versioning Behavior the workflow is annotated with in the workflow code. Note that if the workflow being continued has a Pinned override, that override will be inherited by the new workflow run regardless of the ContinueAsNewVersioningBehavior specified in the continue-as-new command. Versioning Override always takes precedence until it's removed manually via UpdateWorkflowExecutionOptions.
Experimental. Use the Ramping Version of the workflow's task queue at start time, regardless of the workflow's Target Version (according to f(workflow_id, ramp_percentage)). After the first workflow task completes, the workflow will use whatever Versioning Behavior it is annotated with. If there is no Ramping Version by the time that the first workflow task is dispatched, it will be sent to the Current Version. It is highly discouraged to use this if the workflow is annotated with AutoUpgrade behavior, because this setting ONLY applies to the first task of the workflow. If, after the first task, the workflow is AutoUpgrade, it will behave like a normal AutoUpgrade workflow and go to the Target Version, which may be the Current Version instead of the Ramping Version. Note that if the workflow being continued has a Pinned override, that override will be inherited by the new workflow run regardless of the ContinueAsNewVersioningBehavior specified in the continue-as-new command. Versioning Override always takes precedence until it's removed manually via UpdateWorkflowExecutionOptions.
Specify the reachability level for a deployment so users can decide if it is time to decommission the deployment.
Used in:
Reachability level is not specified.
The deployment is reachable by new and/or open workflows. The deployment cannot be decommissioned safely.
The deployment is not reachable by new or open workflows, but might be still needed by Queries sent to closed workflows. The deployment can be decommissioned safely if user does not query closed workflows.
The deployment is not reachable by any workflow because all the workflows who needed this deployment went out of retention period. The deployment can be decommissioned safely.
Used in:
Unspecified means legacy behavior.
Enhanced mode reports aggregated results for all partitions, supports Build IDs, and reports richer info.
Used in:
Whenever this list of events is changed do change the function shouldBufferEvent in mutableStateBuilder.go to make sure to do the correct event ordering
Used in: , , ,
Place holder and should never appear in a Workflow execution history
Workflow execution has been triggered/started It contains Workflow execution inputs, as well as Workflow timeout configurations
Workflow execution has successfully completed and contains Workflow execution results
Workflow execution has unsuccessfully completed and contains the Workflow execution error
Workflow execution has timed out by the Temporal Server Usually due to the Workflow having not been completed within timeout settings
Workflow Task has been scheduled and the SDK client should now be able to process any new history events
Workflow Task has started and the SDK client has picked up the Workflow Task and is processing new history events
Workflow Task has completed The SDK client picked up the Workflow Task and processed new history events SDK client may or may not ask the Temporal Server to do additional work, such as: EVENT_TYPE_ACTIVITY_TASK_SCHEDULED EVENT_TYPE_TIMER_STARTED EVENT_TYPE_UPSERT_WORKFLOW_SEARCH_ATTRIBUTES EVENT_TYPE_MARKER_RECORDED EVENT_TYPE_START_CHILD_WORKFLOW_EXECUTION_INITIATED EVENT_TYPE_REQUEST_CANCEL_EXTERNAL_WORKFLOW_EXECUTION_INITIATED EVENT_TYPE_SIGNAL_EXTERNAL_WORKFLOW_EXECUTION_INITIATED EVENT_TYPE_WORKFLOW_EXECUTION_COMPLETED EVENT_TYPE_WORKFLOW_EXECUTION_FAILED EVENT_TYPE_WORKFLOW_EXECUTION_CANCELED EVENT_TYPE_WORKFLOW_EXECUTION_CONTINUED_AS_NEW
Workflow Task encountered a timeout Either an SDK client with a local cache was not available at the time, or it took too long for the SDK client to process the task
Workflow Task encountered a failure Usually this means that the Workflow was non-deterministic However, the Workflow reset functionality also uses this event
Activity Task was scheduled The SDK client should pick up this activity task and execute This event type contains activity inputs, as well as activity timeout configurations
Activity Task has started executing The SDK client has picked up the Activity Task and is processing the Activity invocation
Activity Task has finished successfully The SDK client has picked up and successfully completed the Activity Task This event type contains Activity execution results
Activity Task has finished unsuccessfully The SDK picked up the Activity Task but unsuccessfully completed it This event type contains Activity execution errors
Activity has timed out according to the Temporal Server Activity did not complete within the timeout settings
A request to cancel the Activity has occurred The SDK client will be able to confirm cancellation of an Activity during an Activity heartbeat
Activity has been cancelled
A timer has started
A timer has fired
A time has been cancelled
A request has been made to cancel the Workflow execution
SDK client has confirmed the cancellation request and the Workflow execution has been cancelled
Workflow has requested that the Temporal Server try to cancel another Workflow
Temporal Server could not cancel the targeted Workflow This is usually because the target Workflow could not be found
Temporal Server has successfully requested the cancellation of the target Workflow
A marker has been recorded. This event type is transparent to the Temporal Server The Server will only store it and will not try to understand it.
Workflow has received a Signal event The event type contains the Signal name, as well as a Signal payload
Workflow execution has been forcefully terminated This is usually because the terminate Workflow API was called
Workflow has successfully completed and a new Workflow has been started within the same transaction Contains last Workflow execution results as well as new Workflow execution inputs
Temporal Server will try to start a child Workflow
Child Workflow execution cannot be started/triggered Usually due to a child Workflow ID collision
Child Workflow execution has successfully started/triggered
Child Workflow execution has successfully completed
Child Workflow execution has unsuccessfully completed
Child Workflow execution has been cancelled
Child Workflow execution has timed out by the Temporal Server
Child Workflow execution has been terminated
Temporal Server will try to Signal the targeted Workflow Contains the Signal name, as well as a Signal payload
Temporal Server cannot Signal the targeted Workflow Usually because the Workflow could not be found
Temporal Server has successfully Signaled the targeted Workflow
Workflow search attributes should be updated and synchronized with the visibility store
An update was admitted. Note that not all admitted updates result in this event. See UpdateAdmittedEventOrigin for situations in which this event is created.
An update was accepted (i.e. passed validation, perhaps because no validator was defined)
This event is never written to history.
An update completed
Some property or properties of the workflow as a whole have changed by non-workflow code. The distinction of external vs. command-based modification is important so the SDK can maintain determinism when using the command-based approach.
Some property or properties of an already-scheduled activity have changed by non-workflow code. The distinction of external vs. command-based modification is important so the SDK can maintain determinism when using the command-based approach.
Workflow properties modified by user workflow code
A Nexus operation was scheduled using a ScheduleNexusOperation command.
An asynchronous Nexus operation was started by a Nexus handler.
A Nexus operation completed successfully.
A Nexus operation failed.
A Nexus operation completed as canceled.
A Nexus operation timed out.
A Nexus operation was requested to be canceled using a RequestCancelNexusOperation command.
Workflow execution options updated by user.
A cancellation request for a Nexus operation was successfully delivered to the Nexus handler.
A cancellation request for a Nexus operation resulted in an error.
An event that indicates that the workflow execution has been paused.
An event that indicates that the previously paused workflow execution has been unpaused.
An event that indicates time skipping advanced time or was disabled automatically after a bound was reached.
Used in:
Used in: , ,
Used in: , ,
NexusHandlerErrorRetryBehavior allows nexus handlers to explicity set the retry behavior of a HandlerError. If not specified, retry behavior is determined from the error type. For example internal errors are not retryable by default unless specified otherwise.
Used in: ,
A handler error is explicitly marked as retryable.
A handler error is explicitly marked as non-retryable.
State of a Nexus operation cancellation.
Used in: ,
Default value, unspecified state.
Cancellation request is in the queue waiting to be executed or is currently executing.
Cancellation request has failed with a retryable error and is backing off before the next attempt.
Cancellation request succeeded.
Cancellation request failed with a non-retryable error.
The associated operation timed out - exceeded the user supplied schedule-to-close timeout.
Cancellation request is blocked (eg: by circuit breaker).
Status of a standalone Nexus operation execution. The status is updated once, when the operation is originally scheduled, and again when the operation reaches a terminal status. (-- api-linter: core::0216::synonyms=disabled aip.dev/not-precedent: Named consistently with WorkflowExecutionStatus. --)
Used in: ,
The operation is not in a terminal status. The operation may be attempting to start, backing off between attempts, or already started.
The operation completed successfully.
The operation completed with failure.
The operation completed as canceled. Requesting to cancel an operation does not automatically transition the operation to canceled status, depending on the current operation status and the cancelation type used.
The operation was terminated. Termination happens immediately without notifying the handler.
The operation has timed out by reaching one of the specified timeouts.
Defines what to do when trying to start a Nexus operation with the same ID as a *running* operation. Note that it is *never* valid to have two running instances of the same operation ID. See `NexusOperationIdReusePolicy` for handling operation ID duplication with a *closed* operation.
Used in:
Don't start a new operation; instead return `NexusOperationAlreadyStarted` error.
Don't start a new operation; instead return a handle for the running operation.
Defines whether to allow re-using an operation ID from a previously *closed* Nexus operation. If the request is denied, the server returns a `NexusOperationAlreadyStarted` error. See `NexusOperationIdConflictPolicy` for handling ID duplication with a *running* operation.
Used in:
Always allow starting an operation using the same operation ID.
Allow starting an operation using the same ID only when the last operation's final state is one of {failed, canceled, terminated, timed out}.
Do not permit re-use of the ID for this operation. Future start requests could potentially change the policy, allowing re-use of the ID.
Stage that can be specified when waiting on a nexus operation.
Used in: ,
Wait for the operation to be started.
Wait for the operation to be in a terminal state, either successful or unsuccessful.
Defines how child workflows will react to their parent completing
Used in: , ,
The child workflow will also terminate
The child workflow will do nothing
Cancellation will be requested of the child workflow
Used in: ,
PAUSED means activity is paused on the server, and is not running in the worker
PAUSE_REQUESTED means activity is currently running on the worker, but paused on the server
State of a pending Nexus operation.
Used in: ,
Default value, unspecified state.
Operation is in the queue waiting to be executed or is currently executing.
Operation has failed with a retryable error and is backing off before the next attempt.
Operation was started and will complete asynchronously.
Operation is blocked (eg: by circuit breaker).
Used in:
Used in:
None indicates that query should not be rejected.
NotOpen indicates that query should be rejected if workflow is not open.
NotCompletedCleanly indicates that query should be rejected if workflow did not complete cleanly.
Used in: ,
Source for the effective rate limit.
Used in:
The value was set by the API.
The value was set by a worker.
The value was set as the system default.
Used in:
Event types to exclude when reapplying events beyond the reset point.
Used in: ,
Exclude signals when reapplying events beyond the reset point.
Exclude updates when reapplying events beyond the reset point.
Exclude nexus events when reapplying events beyond the reset point.
Deprecated, unimplemented option.
Deprecated: applications should use ResetReapplyExcludeType to specify exclusions from this set, and new event types should be added to ResetReapplyExcludeType instead of here.
Used in: , ,
Signals are reapplied when workflow is reset.
No events are reapplied when workflow is reset.
All eligible events are reapplied when workflow is reset.
Deprecated, see temporal.api.common.v1.ResetOptions.
Used in:
Resets to event of the first workflow task completed, or if it does not exist, the event after task scheduled.
Resets to event of the last workflow task completed, or if it does not exist, the event after task scheduled.
Used in:
Caller exceeds request per second limit.
Caller exceeds max concurrent request limit.
System overloaded.
Namespace exceeds persistence rate limit.
Workflow is busy
Caller exceeds action per second limit.
Persistence storage limit exceeded.
Circuit breaker is open/half-open.
Namespace exceeds operations rate limit.
Limits related to Worker Deployments are reached.
Used in:
Exhausted resource is a system-level resource.
Exhausted resource is a namespace-level resource.
Used in: , , , , , , ,
Indicates whether a change to the Routing Config has been propagated to all relevant Task Queues and their partitions.
Used in:
Update to the RoutingConfig is currently in progress.
Update to the RoutingConfig has completed successfully.
ScheduleOverlapPolicy controls what happens when a workflow would be started by a schedule, and is already running.
Used in: , ,
SCHEDULE_OVERLAP_POLICY_SKIP (default) means don't start anything. When the workflow completes, the next scheduled event after that time will be considered.
SCHEDULE_OVERLAP_POLICY_BUFFER_ONE means start the workflow again soon as the current one completes, but only buffer one start in this way. If another start is supposed to happen when the workflow is running, and one is already buffered, then only the first one will be started after the running workflow finishes.
SCHEDULE_OVERLAP_POLICY_BUFFER_ALL means buffer up any number of starts to all happen sequentially, immediately after the running workflow completes.
SCHEDULE_OVERLAP_POLICY_CANCEL_OTHER means that if there is another workflow running, cancel it, and start the new one after the old one completes cancellation.
SCHEDULE_OVERLAP_POLICY_TERMINATE_OTHER means that if there is another workflow running, terminate it and start the new one immediately.
SCHEDULE_OVERLAP_POLICY_ALLOW_ALL means start any number of concurrent workflows. Note that with this policy, last completion result and last failure will not be available since workflows are not sequential.
Used in:
Used in:
Signal count limit is per workflow and controlled by server dynamic config "history.maximumSignalsPerExecution"
Used in:
SuggestContinueAsNewReason specifies why SuggestContinueAsNew is true.
Used in:
Workflow History size is getting too large.
Workflow History event count is getting too large.
Workflow's count of completed plus in-flight updates is too large.
Used in:
Tasks from any non workflow task may be unspecified. Task queue kind is used to differentiate whether a workflow task queue is sticky or normal. If a task is not a workflow task, Task queue kind will sometimes be unspecified.
Tasks from a normal workflow task queue always include complete workflow history The task queue specified by the user is always a normal task queue. There can be as many workers as desired for a single normal task queue. All those workers may pick up tasks from that queue.
A sticky queue only includes new history since the last workflow task, and they are per-worker. Sticky queues are created dynamically by each worker during their start up. They only exist for the lifetime of the worker process. Tasks in a sticky task queue are only available to the worker that created the sticky queue. Sticky queues are only for workflow tasks. There are no sticky task queues for activities.
A worker-commands task queue is used for server-to-worker communication (e.g. activity cancellations). These queues are ephemeral and per-worker-process — they exist only for the lifetime of the worker process. Used with TASK_QUEUE_TYPE_NEXUS and polled via PollNexusTaskQueue.
Used in: , , , , , , ,
Workflow type of task queue.
Activity type of task queue.
Task queue type for dispatching Nexus requests.
Specifies which category of tasks may reach a worker on a versioned task queue. Used both in a reachability query and its response. Deprecated.
Used in: ,
There's a possiblity for a worker to receive new workflow tasks. Workers should *not* be retired.
There's a possiblity for a worker to receive existing workflow and activity tasks from existing workflows. Workers should *not* be retired. This enum value does not distinguish between open and closed workflows.
There's a possiblity for a worker to receive existing workflow and activity tasks from open workflows. Workers should *not* be retired.
There's a possiblity for a worker to receive existing workflow tasks from closed workflows. Workers may be retired dependending on application requirements. For example, if there's no need to query closed workflows.
Used in: ,
Records why a WorkflowExecutionUpdateAdmittedEvent was written to history. Note that not all admitted Updates result in this event.
Used in:
The UpdateAdmitted event was created when reapplying events during reset or replication. I.e. an accepted Update on one branch of Workflow history was converted into an admitted Update on a different branch.
UpdateWorkflowExecutionLifecycleStage is specified by clients invoking Workflow Updates and used to indicate to the server how long the client wishes to wait for a return value from the API. If any value other than UPDATE_WORKFLOW_EXECUTION_LIFECYCLE_STAGE_COMPLETED is sent by the client then the API will complete before the Update is finished and will return a handle to the running Update so that it can later be polled for completion. If specified stage wasn't reached before server timeout, server returns actual stage reached.
Used in: , ,
An unspecified value for this enum.
The API call will not return until the Update request has been admitted by the server - it may be the case that due to a considerations like load or resource limits that an Update is made to wait before the server will indicate that it has been received and will be processed. This value does not wait for any sort of acknowledgement from a worker.
The API call will not return until the Update has passed validation on a worker.
The API call will not return until the Update has executed to completion on a worker and has either been rejected or returned a value or an error.
(-- api-linter: core::0216::synonyms=disabled aip.dev/not-precedent: Call this status because it is . --) Specify the drainage status for a Worker Deployment Version so users can decide whether they can safely decommission the version.
Used in: ,
Drainage Status is not specified.
The Worker Deployment Version is not used by new workflows but is still used by open pinned workflows. The version cannot be decommissioned safely.
The Worker Deployment Version is not used by new or open workflows, but might be still needed by Queries sent to closed workflows. The version can be decommissioned safely if user does not query closed workflows. If the user does query closed workflows for some time x after workflows are closed, they should decommission the version after it has been drained for that duration.
Versioning Behavior specifies if and how a workflow execution moves between Worker Deployment Versions. The Versioning Behavior of a workflow execution is typically specified by the worker who completes the first task of the execution, but is also overridable manually for new and existing workflows (see VersioningOverride).
Used in: , , ,
Workflow execution does not have a Versioning Behavior and is called Unversioned. This is the legacy behavior. An Unversioned workflow's task can go to any Unversioned worker (see `WorkerVersioningMode`.) User needs to use Patching to keep the new code compatible with prior versions when dealing with Unversioned workflows.
Workflow will start on its Target Version and then will be pinned to that same Deployment Version until completion (the Version that this Workflow is pinned to is specified in `versioning_info.version` and is the Pinned Version of the Workflow). The workflow's Target Version is the Current Version of its Task Queue, or, if the Task Queue has a Ramping Version with non-zero Ramp Percentage `P`, the workflow's Target Version has a P% chance of being the Ramping Version. Whether a workflow falls into the Ramping group depends on its Workflow ID and and the Ramp Percentage. This behavior eliminates most of compatibility concerns users face when changing their code. Patching is not needed when pinned workflows code change. Can be overridden explicitly via `UpdateWorkflowExecutionOptions` API to move the execution to another Deployment Version. Activities of `PINNED` workflows are sent to the same Deployment Version. Exception to this would be when the activity Task Queue workers are not present in the workflow's Deployment Version, in which case the activity will be sent to the Current Deployment Version of its own task queue.
Workflow will automatically move to its Target Version when the next workflow task is dispatched. The workflow's Target Version is the Current Version of its Task Queue, or, if the Task Queue has a Ramping Version with non-zero Ramp Percentage `P`, the workflow's Target Version has a P% chance of being the Ramping Version. Whether a workflow falls into the Ramping group depends on its Workflow ID and and the Ramp Percentage. AutoUpgrade behavior is suitable for long-running workflows as it allows them to move to the latest Deployment Version, but the user still needs to use Patching to keep the new code compatible with prior versions for changed workflow types. Activities of `AUTO_UPGRADE` workflows are sent to the Deployment Version of the workflow execution (as specified in versioning_info.version based on the last completed workflow task). Exception to this would be when the activity Task Queue workers are not present in the workflow's Deployment Version, in which case, the activity will be sent to a different Deployment Version according to the Current or Ramping Deployment Version of its own Task Queue. Workflows stuck on a backlogged activity will still auto-upgrade if their Target Version changes, without having to wait for the backlogged activity to complete on the old Version.
(-- api-linter: core::0216::synonyms=disabled aip.dev/not-precedent: Call this status because it is . --) Specify the status of a Worker Deployment Version.
Used in: ,
The Worker Deployment Version has been created inside the Worker Deployment but is not used by any workflow executions. These Versions can still have workflows if they have an explicit Versioning Override targeting this Version. Such Versioning Override could be set at workflow start time, or at a later time via `UpdateWorkflowExecutionOptions`.
The Worker Deployment Version is the current version of the Worker Deployment. All new workflow executions and tasks of existing unversioned or AutoUpgrade workflows are routed to this version.
The Worker Deployment Version is the ramping version of the Worker Deployment. A subset of new Pinned workflow executions are routed to this version. Moreover, a portion of existing unversioned or AutoUpgrade workflow executions are also routed to this version.
The Worker Deployment Version is not used by new workflows but is still used by open pinned workflows. The version cannot be decommissioned safely.
The Worker Deployment Version is not used by new or open workflows, but might be still needed by Queries sent to closed workflows. The version can be decommissioned safely if user does not query closed workflows. If the user does query closed workflows for some time x after workflows are closed, they should decommission the version after it has been drained for that duration.
The Worker Deployment Version is created by user (via `CreateWorkerDeploymentVersion` API) but server has not seen any poller for it yet.
(-- api-linter: core::0216::synonyms=disabled aip.dev/not-precedent: It seems we have both state and status, and status is a better fit for workers. --)
Used in: ,
Versioning Mode of a worker is set by the app developer in the worker code, and specifies the behavior of the system in the following related aspects: - Whether or not Temporal Server considers this worker's version (Build ID) when dispatching tasks to it. - Whether or not the workflows processed by this worker are versioned using the worker's version.
Used in:
Workers with this mode are not distinguished from each other for task routing, even if they have different Build IDs. Workflows processed by this worker will be unversioned and user needs to use Patching to keep the new code compatible with prior versions. This mode is recommended to be used along with Rolling Upgrade deployment strategies. Workers with this mode are represented by the special string `__unversioned__` in the APIs.
Workers with this mode are part of a Worker Deployment Version which is identified as "<deployment_name>.<build_id>". Such workers are called "versioned" as opposed to "unversioned". Each Deployment Version is distinguished from other Versions for task routing and users can configure Temporal Server to send tasks to a particular Version (see `WorkerDeploymentInfo.routing_config`). This mode is the best option for Blue/Green and Rainbow strategies (but typically not suitable for Rolling upgrades.) Workflow Versioning Behaviors are enabled in this mode: each workflow type must choose between the Pinned and AutoUpgrade behaviors. Depending on the chosen behavior, the user may or may not need to use Patching to keep the new code compatible with prior versions. (see VersioningBehavior enum.)
(-- api-linter: core::0216::synonyms=disabled aip.dev/not-precedent: There is WorkflowExecutionState already in another package. --)
Used in: , , , ,
Value 1 is hardcoded in SQL persistence.
Defines what to do when trying to start a workflow with the same workflow id as a *running* workflow. Note that it is *never* valid to have two actively running instances of the same workflow id. See `WorkflowIdReusePolicy` for handling workflow id duplication with a *closed* workflow.
Used in: ,
Don't start a new workflow; instead return `WorkflowExecutionAlreadyStartedFailure`.
Don't start a new workflow; instead return a workflow handle for the running workflow.
Terminate the running workflow before starting a new one.
Defines whether to allow re-using a workflow id from a previously *closed* workflow. If the request is denied, the server returns a `WorkflowExecutionAlreadyStartedFailure` error. See `WorkflowIdConflictPolicy` for handling workflow id duplication with a *running* workflow.
Used in: , , , ,
Allow starting a workflow execution using the same workflow id.
Allow starting a workflow execution using the same workflow id, only when the last execution's final state is one of [terminated, cancelled, timed out, failed].
Do not permit re-use of the workflow id for this workflow. Future start workflow requests could potentially change the policy, allowing re-use of the workflow id.
Terminate the current Workflow if one is already running; otherwise allow reusing the Workflow ID. When using this option, `WorkflowIdConflictPolicy` must be left unspecified. Deprecated. Instead, set `WorkflowIdReusePolicy` to `ALLOW_DUPLICATE` and `WorkflowIdConflictPolicy` to `TERMINATE_EXISTING`. Note that `WorkflowIdConflictPolicy` requires Temporal Server v1.24.0 or later.
Default value, unspecified scope.
The action will be applied to the entire workflow.
The action will be applied to a specific activity.
Workflow tasks can fail for various reasons. Note that some of these reasons can only originate from the server, and some of them can only originate from the SDK/worker.
Used in: , ,
Between starting and completing the workflow task (with a workflow completion command), some new command (like a signal) was processed into workflow history. The outstanding task will be failed with this reason, and a worker must pick up a new task.
The worker wishes to fail the task and have the next one be generated on a normal, not sticky queue. Generally workers should prefer to use the explicit `ResetStickyTaskQueue` RPC call.
The worker encountered a mismatch while replaying history between what was expected, and what the workflow code actually did.
We send the below error codes to users when their requests would violate a size constraint of their workflow. We do this to ensure that the state of their workflow does not become too large because that can cause severe performance degradation. You can modify the thresholds for each of these errors within your dynamic config. Spawning a new child workflow would cause this workflow to exceed its limit of pending child workflows.
Starting a new activity would cause this workflow to exceed its limit of pending activities that we track.
A workflow has a buffer of signals that have not yet reached their destination. We return this error when sending a new signal would exceed the capacity of this buffer.
Similarly, we have a buffer of pending requests to cancel other workflows. We return this error when our capacity for pending cancel requests is already reached.
Workflow execution update message (update.Acceptance, update.Rejection, or update.Response) has wrong format, or missing required fields.
Similar to WORKFLOW_TASK_FAILED_CAUSE_UNHANDLED_COMMAND, but for updates.
A workflow task completed with an invalid ScheduleNexusOperation command.
A workflow task completed requesting to schedule a Nexus Operation exceeding the server configured limit.
A workflow task completed with an invalid RequestCancelNexusOperation command.
A workflow task completed requesting a feature that's disabled on the server (either system wide or - typically - for the workflow's namespace). Check the workflow task failure message for more information.
A workflow task failed because a grpc message was too large.
A workflow task failed because payloads were too large.