diff --git a/openapi/openapiv2.json b/openapi/openapiv2.json index 917fce76c..84c4a0865 100644 --- a/openapi/openapiv2.json +++ b/openapi/openapiv2.json @@ -18794,6 +18794,10 @@ "type": "string", "description": "The run id of the workflow that was started - or just signaled, if it was already running." }, + "firstExecutionRunId": { + "type": "string", + "description": "If the workflow was started as a result of a de-dupe, this field will contain the run id of the first execution in the chain." + }, "started": { "type": "boolean", "description": "If true, a new workflow was started." @@ -18982,6 +18986,10 @@ "type": "string", "description": "The run id of the workflow that was started - or used (via WorkflowIdConflictPolicy USE_EXISTING)." }, + "firstExecutionRunId": { + "type": "string", + "description": "If the workflow was started as a result of a de-dupe, this field will contain the run id of the first execution in the chain." + }, "started": { "type": "boolean", "description": "If true, a new workflow was started." diff --git a/openapi/openapiv3.yaml b/openapi/openapiv3.yaml index 4ada710f0..bb8c80e97 100644 --- a/openapi/openapiv3.yaml +++ b/openapi/openapiv3.yaml @@ -16133,6 +16133,9 @@ components: runId: type: string description: The run id of the workflow that was started - or just signaled, if it was already running. + firstExecutionRunId: + type: string + description: If the workflow was started as a result of a de-dupe, this field will contain the run id of the first execution in the chain. started: type: boolean description: If true, a new workflow was started. @@ -16757,6 +16760,9 @@ components: runId: type: string description: The run id of the workflow that was started - or used (via WorkflowIdConflictPolicy USE_EXISTING). + firstExecutionRunId: + type: string + description: If the workflow was started as a result of a de-dupe, this field will contain the run id of the first execution in the chain. started: type: boolean description: If true, a new workflow was started. diff --git a/temporal/api/errordetails/v1/message.proto b/temporal/api/errordetails/v1/message.proto index 2abb60db6..c95d63bc2 100644 --- a/temporal/api/errordetails/v1/message.proto +++ b/temporal/api/errordetails/v1/message.proto @@ -27,6 +27,7 @@ message NotFoundFailure { message WorkflowExecutionAlreadyStartedFailure { string start_request_id = 1; string run_id = 2; + string first_execution_run_id = 3; } message NamespaceNotActiveFailure { diff --git a/temporal/api/workflowservice/v1/request_response.proto b/temporal/api/workflowservice/v1/request_response.proto index f4012c73d..62a9f47f3 100644 --- a/temporal/api/workflowservice/v1/request_response.proto +++ b/temporal/api/workflowservice/v1/request_response.proto @@ -212,6 +212,8 @@ message StartWorkflowExecutionRequest { message StartWorkflowExecutionResponse { // The run id of the workflow that was started - or used (via WorkflowIdConflictPolicy USE_EXISTING). string run_id = 1; + // If the workflow was started as a result of a de-dupe, this field will contain the run id of the first execution in the chain. + string first_execution_run_id = 6; // If true, a new workflow was started. bool started = 3; // Current execution status of the workflow. Typically remains WORKFLOW_EXECUTION_STATUS_RUNNING @@ -901,6 +903,8 @@ message SignalWithStartWorkflowExecutionRequest { message SignalWithStartWorkflowExecutionResponse { // The run id of the workflow that was started - or just signaled, if it was already running. string run_id = 1; + // If the workflow was started as a result of a de-dupe, this field will contain the run id of the first execution in the chain. + string first_execution_run_id = 4; // If true, a new workflow was started. bool started = 2; // Link to be associated with the WorkflowExecutionSignaled event.