diff --git a/.changeset/classified-execution-status.md b/.changeset/classified-execution-status.md new file mode 100644 index 00000000000..31d4c0135ef --- /dev/null +++ b/.changeset/classified-execution-status.md @@ -0,0 +1,5 @@ +--- +"chainlink": minor +--- + +#added The v2 workflow engine now emits `ClassifiedExecutionStatus` on `WorkflowExecutionFinished` events, distinguishing failures caused by the user's workflow (`USER_ERROR`) from platform/infrastructure failures (`SYSTEM_ERROR`). The v1 engine is unaffected. diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 55f7290d628..ce629b1a094 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -513,7 +513,7 @@ require ( github.com/smartcontractkit/chainlink-protos/ring/go v0.0.0-20260331131315-f08a616d8dcd // indirect github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 // indirect github.com/smartcontractkit/chainlink-protos/svr v1.3.0 // indirect - github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260630073003-fb8da7229930 // indirect + github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260716141634-c0cc05ed05d8 // indirect github.com/smartcontractkit/chainlink-solana/contracts v0.0.0-20260513123719-d347eaf314e1 // indirect github.com/smartcontractkit/chainlink-stellar v0.0.3-0.20260714222251-887c274c6b64 // indirect github.com/smartcontractkit/chainlink-stellar/bindings v0.0.0-20260714222251-887c274c6b64 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index cb73ca9e153..3384bc40fa8 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1638,8 +1638,8 @@ github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 h1:B7itmjy+C github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0/go.mod h1:h6kqaGajbNRrezm56zhx03p0mVmmA2xxj7E/M4ytLUA= github.com/smartcontractkit/chainlink-protos/svr v1.3.0 h1:vOw+MbXtkPK8l/hA7uLASIgCwv05YzmuoIMuOXPa+g0= github.com/smartcontractkit/chainlink-protos/svr v1.3.0/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260630073003-fb8da7229930 h1:x2nm4nDoC//WGQRPrInDmBH2/lTN1qAI/IGDQ3gAi7A= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260630073003-fb8da7229930/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260716141634-c0cc05ed05d8 h1:htXgwGej8MmWFrJaGu+QnMSeaPBFAWEnVp22XS23G+M= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260716141634-c0cc05ed05d8/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260605202330-b5a89c32fdc1 h1:e4vdi3czYy+eK2j/eO5r3ceMxxkx4Qq5IsiAeSAQ9uc= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260605202330-b5a89c32fdc1/go.mod h1:wi1QdXqhSJnADt9YRaRtEWomqknLcrdkTS0JotupuOQ= github.com/smartcontractkit/chainlink-solana/contracts v0.0.0-20260513123719-d347eaf314e1 h1:/xvuNFI7DwOoTQnmAdYPDdY+sConn3RgZ2rMy/8AXlo= diff --git a/core/services/workflows/engine.go b/core/services/workflows/engine.go index 8b94dc1bc67..fc5db6cb504 100644 --- a/core/services/workflows/engine.go +++ b/core/services/workflows/engine.go @@ -717,7 +717,8 @@ func (e *Engine) finishExecution(ctx context.Context, cma custmsg.MessageEmitter logCustMsg(ctx, cma, fmt.Sprintf("execution duration: %d (seconds)", executionDuration), l) l.Infof("execution duration: %d (seconds)", executionDuration) - err = events.EmitExecutionFinishedEvent(ctx, cma.Labels(), status, executionID, nil, l) + // v1 engine does not classify user vs system failures. + err = events.EmitExecutionFinishedEvent(ctx, cma.Labels(), status, executionID, nil, events.ErrorClassificationUnspecified, l) if err != nil { e.logger.Errorf("failed to emit execution finished event: %+v", err) } diff --git a/core/services/workflows/events/emit.go b/core/services/workflows/events/emit.go index 61153c29aab..eaa14ec9cfd 100644 --- a/core/services/workflows/events/emit.go +++ b/core/services/workflows/events/emit.go @@ -12,6 +12,7 @@ import ( "google.golang.org/protobuf/proto" "github.com/smartcontractkit/chainlink-common/pkg/beholder" + caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" "github.com/smartcontractkit/chainlink-common/pkg/durableemitter" "github.com/smartcontractkit/chainlink-common/pkg/logger" "github.com/smartcontractkit/chainlink-common/pkg/types" @@ -215,7 +216,62 @@ func EmitExecutionProfile( return profile, emitProtoMessage(ctx, profile) } -func EmitExecutionFinishedEvent(ctx context.Context, labels map[string]string, status string, executionID string, execErr error, lggr logger.Logger) error { +// ErrorClassification attributes a failed workflow execution to its root cause: +// the user's workflow (code, config, or a returned error) vs the platform +// (timeouts, unavailable capabilities, internal engine errors). +type ErrorClassification int + +const ( + // ErrorClassificationUnspecified means the cause was not determined (e.g. the + // legacy v1 engine, which does not classify). Emitted as UNSPECIFIED. + ErrorClassificationUnspecified ErrorClassification = iota + // ErrorClassificationUser attributes the failure to the user's workflow. + ErrorClassificationUser + // ErrorClassificationSystem attributes the failure to the platform. + ErrorClassificationSystem +) + +// ClassifyError resolves an execution error to a user/system classification. +// A caperrors.Error carrying an explicit origin wins (so user-origin errors that +// propagate up from a capability or the guest are attributed correctly); other +// errors fall back to the caller-supplied classification. +func ClassifyError(execErr error, fallback ErrorClassification) ErrorClassification { + if execErr == nil { + return ErrorClassificationUnspecified + } + var capErr caperrors.Error + if errors.As(execErr, &capErr) { + switch capErr.Origin() { + case caperrors.OriginUser: + return ErrorClassificationUser + case caperrors.OriginSystem: + return ErrorClassificationSystem + } + } + return fallback +} + +// classifiedExecutionStatus folds the terminal status and the error +// classification into the v2 ClassifiedExecutionStatus enum. +func classifiedExecutionStatus(status eventsv2.ExecutionStatus, errClass ErrorClassification) eventsv2.ClassifiedExecutionStatus { + switch status { + case eventsv2.ExecutionStatus_EXECUTION_STATUS_SUCCEEDED: + return eventsv2.ClassifiedExecutionStatus_CLASSIFIED_EXECUTION_STATUS_SUCCEEDED + case eventsv2.ExecutionStatus_EXECUTION_STATUS_FAILED: + switch errClass { + case ErrorClassificationUser: + return eventsv2.ClassifiedExecutionStatus_CLASSIFIED_EXECUTION_STATUS_USER_ERROR + case ErrorClassificationSystem: + return eventsv2.ClassifiedExecutionStatus_CLASSIFIED_EXECUTION_STATUS_SYSTEM_ERROR + default: + return eventsv2.ClassifiedExecutionStatus_CLASSIFIED_EXECUTION_STATUS_UNSPECIFIED + } + default: + return eventsv2.ClassifiedExecutionStatus_CLASSIFIED_EXECUTION_STATUS_UNSPECIFIED + } +} + +func EmitExecutionFinishedEvent(ctx context.Context, labels map[string]string, status string, executionID string, execErr error, errClass ErrorClassification, lggr logger.Logger) error { metadata := buildWorkflowMetadata(labels, executionID) event := &events.WorkflowExecutionFinished{ @@ -251,6 +307,7 @@ func EmitExecutionFinishedEvent(ctx context.Context, labels map[string]string, s Timestamp: time.Now().Format(time.RFC3339), Status: executionStatus, Error: errMsg, + ClassifiedStatus: classifiedExecutionStatus(executionStatus, errClass), } // Emit both v1 and v2 events diff --git a/core/services/workflows/events/emit_test.go b/core/services/workflows/events/emit_test.go index 19cbd9c55f9..430280f0f2e 100644 --- a/core/services/workflows/events/emit_test.go +++ b/core/services/workflows/events/emit_test.go @@ -46,7 +46,7 @@ func TestEmit(t *testing.T) { //nolint:paralleltest // beholdertest.NewObserver }) t.Run(events.WorkflowExecutionFinished, func(t *testing.T) { //nolint:paralleltest // shares beholder observer - require.NoError(t, events.EmitExecutionFinishedEvent(t.Context(), labels, "status", executionID, nil, nil)) + require.NoError(t, events.EmitExecutionFinishedEvent(t.Context(), labels, "status", executionID, nil, events.ErrorClassificationUnspecified, nil)) require.Len(t, labels, 1) msgs := beholderObserver.Messages(t, "beholder_entity", "workflows.v1."+events.WorkflowExecutionFinished) @@ -60,7 +60,7 @@ func TestEmit(t *testing.T) { //nolint:paralleltest // beholdertest.NewObserver t.Run(events.WorkflowExecutionFinished+"_with_error", func(t *testing.T) { //nolint:paralleltest // shares beholder observer testErr := errors.New("something went wrong") - require.NoError(t, events.EmitExecutionFinishedEvent(t.Context(), labels, "errored", executionID, testErr, nil)) + require.NoError(t, events.EmitExecutionFinishedEvent(t.Context(), labels, "errored", executionID, testErr, events.ErrorClassificationSystem, nil)) v2Msgs := beholderObserver.Messages(t, "beholder_entity", "workflows.v2."+events.WorkflowExecutionFinished) require.NotEmpty(t, v2Msgs) @@ -70,6 +70,7 @@ func TestEmit(t *testing.T) { //nolint:paralleltest // beholdertest.NewObserver require.NoError(t, proto.Unmarshal(v2Msgs[len(v2Msgs)-1].Body, &v2Event)) assert.Equal(t, "something went wrong", v2Event.Error) assert.Equal(t, eventsv2.ExecutionStatus_EXECUTION_STATUS_FAILED, v2Event.Status) + assert.Equal(t, eventsv2.ClassifiedExecutionStatus_CLASSIFIED_EXECUTION_STATUS_SYSTEM_ERROR, v2Event.ClassifiedStatus) }) t.Run(events.CapabilityExecutionStarted, func(t *testing.T) { //nolint:paralleltest // shares beholder observer diff --git a/core/services/workflows/v2/engine.go b/core/services/workflows/v2/engine.go index 5aaee82e11d..75773b69d44 100644 --- a/core/services/workflows/v2/engine.go +++ b/core/services/workflows/v2/engine.go @@ -876,11 +876,13 @@ func (e *Engine) startExecution(ctx context.Context, wrappedTriggerEvent enqueue } e.metrics.With("workflowID", e.cfg.WorkflowID, "workflowName", e.cfg.WorkflowName.String()).IncrementWorkflowExecutionStartedCounter(ctx) - // Track execution error for deferred event emission + // Track execution error (and its user/system classification) for deferred + // event emission. Set alongside executionStatus at each outcome site below. var execErr error + execErrClass := events.ErrorClassificationUnspecified var execHelper *ExecutionHelper defer func() { - _ = events.EmitExecutionFinishedEvent(ctx, loggerLabels, executionStatus, executionID, execErr, lggr) + _ = events.EmitExecutionFinishedEvent(ctx, loggerLabels, executionStatus, executionID, execErr, execErrClass, lggr) if execHelper != nil { endTime := e.cfg.Clock.Now() profile, emitErr := events.EmitExecutionProfile( @@ -932,6 +934,7 @@ func (e *Engine) startExecution(ctx context.Context, wrappedTriggerEvent enqueue lggr.Errorw("Failed to get execution response size limit", "err", err) executionStatus = store.StatusErrored execErr = err + execErrClass = events.ErrorClassificationSystem triggerDrop(monitoring.TriggerDropReasonExecutionResponseLimitReadFailed) return } @@ -939,6 +942,7 @@ func (e *Engine) startExecution(ctx context.Context, wrappedTriggerEvent enqueue execErr = fmt.Errorf("invalid moduleExecuteMaxResponseSizeBytes; must not be negative: %d", moduleExecuteMaxResponseSizeBytes) lggr.Errorw(execErr.Error()) executionStatus = store.StatusErrored + execErrClass = events.ErrorClassificationSystem triggerDrop(monitoring.TriggerDropReasonExecutionResponseLimitInvalid) return } @@ -1010,6 +1014,10 @@ func (e *Engine) startExecution(ctx context.Context, wrappedTriggerEvent enqueue if execErr != nil { executionStatus = store.StatusErrored + // Module/host and timeout failures are platform errors by default, but a + // user-origin caperrors.Error propagating from a capability or the guest + // is attributed to the user. + execErrClass = events.ClassifyError(execErr, events.ErrorClassificationSystem) if errors.Is(execErr, context.DeadlineExceeded) { executionStatus = store.StatusTimeout e.metrics.UpdateWorkflowTimeoutDurationHistogram(ctx, int64(executionDuration.Seconds())) @@ -1028,6 +1036,8 @@ func (e *Engine) startExecution(ctx context.Context, wrappedTriggerEvent enqueue if len(result.GetError()) > 0 { executionStatus = store.StatusErrored execErr = errors.New(result.GetError()) + // The user's workflow ran and returned an error: a user failure. + execErrClass = events.ErrorClassificationUser e.metrics.UpdateWorkflowErrorDurationHistogram(ctx, int64(executionDuration.Seconds())) e.metrics.With("workflowID", e.cfg.WorkflowID, "workflowName", e.cfg.WorkflowName.String()).IncrementWorkflowExecutionFailedCounter(ctx) e.metrics.IncrementWorkflowExecutionFinishedCounter(ctx, executionStatus) diff --git a/deployment/go.mod b/deployment/go.mod index 35160491499..bcbd234e319 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -446,7 +446,7 @@ require ( github.com/smartcontractkit/chainlink-protos/ring/go v0.0.0-20260331131315-f08a616d8dcd // indirect github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 // indirect github.com/smartcontractkit/chainlink-protos/svr v1.3.0 // indirect - github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260630073003-fb8da7229930 // indirect + github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260716141634-c0cc05ed05d8 // indirect github.com/smartcontractkit/chainlink-sui/codec v0.0.0-20260714120433-7667cad5ff5c // indirect github.com/smartcontractkit/chainlink-testing-framework/parrot v0.6.2 // indirect github.com/smartcontractkit/chainlink-testing-framework/seth v1.51.5 // indirect diff --git a/deployment/go.sum b/deployment/go.sum index b1f69c00bbe..e5b993bc10c 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1448,8 +1448,8 @@ github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 h1:B7itmjy+C github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0/go.mod h1:h6kqaGajbNRrezm56zhx03p0mVmmA2xxj7E/M4ytLUA= github.com/smartcontractkit/chainlink-protos/svr v1.3.0 h1:vOw+MbXtkPK8l/hA7uLASIgCwv05YzmuoIMuOXPa+g0= github.com/smartcontractkit/chainlink-protos/svr v1.3.0/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260630073003-fb8da7229930 h1:x2nm4nDoC//WGQRPrInDmBH2/lTN1qAI/IGDQ3gAi7A= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260630073003-fb8da7229930/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260716141634-c0cc05ed05d8 h1:htXgwGej8MmWFrJaGu+QnMSeaPBFAWEnVp22XS23G+M= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260716141634-c0cc05ed05d8/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260605202330-b5a89c32fdc1 h1:e4vdi3czYy+eK2j/eO5r3ceMxxkx4Qq5IsiAeSAQ9uc= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260605202330-b5a89c32fdc1/go.mod h1:wi1QdXqhSJnADt9YRaRtEWomqknLcrdkTS0JotupuOQ= github.com/smartcontractkit/chainlink-solana/contracts v0.0.0-20260513123719-d347eaf314e1 h1:/xvuNFI7DwOoTQnmAdYPDdY+sConn3RgZ2rMy/8AXlo= diff --git a/go.mod b/go.mod index 989179a6745..f8b11e574d8 100644 --- a/go.mod +++ b/go.mod @@ -104,7 +104,7 @@ require ( github.com/smartcontractkit/chainlink-protos/orchestrator v0.11.0 github.com/smartcontractkit/chainlink-protos/ring/go v0.0.0-20260331131315-f08a616d8dcd github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 - github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260630073003-fb8da7229930 + github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260716141634-c0cc05ed05d8 github.com/smartcontractkit/chainlink-sui/codec v0.0.0-20260714120433-7667cad5ff5c github.com/smartcontractkit/chainlink-ton/cciplib v0.1.1-0.20260715200135-39296e69ee4e github.com/smartcontractkit/cre-sdk-go v1.9.0-capdev.1.0.20260625132924-dcceeb57cf3c diff --git a/go.sum b/go.sum index 7009d5fe00e..80369f8ddd4 100644 --- a/go.sum +++ b/go.sum @@ -1211,8 +1211,8 @@ github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 h1:B7itmjy+C github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0/go.mod h1:h6kqaGajbNRrezm56zhx03p0mVmmA2xxj7E/M4ytLUA= github.com/smartcontractkit/chainlink-protos/svr v1.3.0 h1:vOw+MbXtkPK8l/hA7uLASIgCwv05YzmuoIMuOXPa+g0= github.com/smartcontractkit/chainlink-protos/svr v1.3.0/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260630073003-fb8da7229930 h1:x2nm4nDoC//WGQRPrInDmBH2/lTN1qAI/IGDQ3gAi7A= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260630073003-fb8da7229930/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260716141634-c0cc05ed05d8 h1:htXgwGej8MmWFrJaGu+QnMSeaPBFAWEnVp22XS23G+M= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260716141634-c0cc05ed05d8/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= github.com/smartcontractkit/chainlink-sui/codec v0.0.0-20260714120433-7667cad5ff5c h1:WNSgjUqEqAgT4uJvVYvTdP7OrQO5ockm50Kvb/CBa2M= github.com/smartcontractkit/chainlink-sui/codec v0.0.0-20260714120433-7667cad5ff5c/go.mod h1:pSW9q0/YqQE5R65Z/2zsyD9c50JZf+yRJJvN6Jo3LCU= github.com/smartcontractkit/chainlink-ton/cciplib v0.1.1-0.20260715200135-39296e69ee4e h1:a/84ZnvSghWJ04Zjsd8L2KDUVh7HzYne9ICm5lwn+jQ= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index bc9c739dde1..b203923210d 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -429,7 +429,7 @@ require ( github.com/smartcontractkit/chainlink-protos/ring/go v0.0.0-20260331131315-f08a616d8dcd // indirect github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 // indirect github.com/smartcontractkit/chainlink-protos/svr v1.3.0 // indirect - github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260630073003-fb8da7229930 // indirect + github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260716141634-c0cc05ed05d8 // indirect github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260605202330-b5a89c32fdc1 // indirect github.com/smartcontractkit/chainlink-sui/codec v0.0.0-20260714120433-7667cad5ff5c // indirect github.com/smartcontractkit/chainlink-testing-framework/framework v0.16.6-0.20260708113039-95f97b2d25e9 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 681f8760a6b..2b44f534e3c 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1435,8 +1435,8 @@ github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 h1:B7itmjy+C github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0/go.mod h1:h6kqaGajbNRrezm56zhx03p0mVmmA2xxj7E/M4ytLUA= github.com/smartcontractkit/chainlink-protos/svr v1.3.0 h1:vOw+MbXtkPK8l/hA7uLASIgCwv05YzmuoIMuOXPa+g0= github.com/smartcontractkit/chainlink-protos/svr v1.3.0/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260630073003-fb8da7229930 h1:x2nm4nDoC//WGQRPrInDmBH2/lTN1qAI/IGDQ3gAi7A= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260630073003-fb8da7229930/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260716141634-c0cc05ed05d8 h1:htXgwGej8MmWFrJaGu+QnMSeaPBFAWEnVp22XS23G+M= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260716141634-c0cc05ed05d8/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260605202330-b5a89c32fdc1 h1:e4vdi3czYy+eK2j/eO5r3ceMxxkx4Qq5IsiAeSAQ9uc= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260605202330-b5a89c32fdc1/go.mod h1:wi1QdXqhSJnADt9YRaRtEWomqknLcrdkTS0JotupuOQ= github.com/smartcontractkit/chainlink-sui v0.0.0-20260713221039-69796c8a78ae h1:0vPX7KjVbdMLImLfeKXNDir0qswAwwQOMDAB/ciVPq8= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index c2b71a7b9ab..9219eb16ac1 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -509,7 +509,7 @@ require ( github.com/smartcontractkit/chainlink-protos/ring/go v0.0.0-20260331131315-f08a616d8dcd // indirect github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 // indirect github.com/smartcontractkit/chainlink-protos/svr v1.3.0 // indirect - github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260630073003-fb8da7229930 // indirect + github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260716141634-c0cc05ed05d8 // indirect github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260605202330-b5a89c32fdc1 // indirect github.com/smartcontractkit/chainlink-sui v0.0.0-20260713221039-69796c8a78ae // indirect github.com/smartcontractkit/chainlink-sui/codec v0.0.0-20260714120433-7667cad5ff5c // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index cd1f7979198..dbb2f44acad 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1695,8 +1695,8 @@ github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 h1:B7itmjy+C github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0/go.mod h1:h6kqaGajbNRrezm56zhx03p0mVmmA2xxj7E/M4ytLUA= github.com/smartcontractkit/chainlink-protos/svr v1.3.0 h1:vOw+MbXtkPK8l/hA7uLASIgCwv05YzmuoIMuOXPa+g0= github.com/smartcontractkit/chainlink-protos/svr v1.3.0/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260630073003-fb8da7229930 h1:x2nm4nDoC//WGQRPrInDmBH2/lTN1qAI/IGDQ3gAi7A= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260630073003-fb8da7229930/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260716141634-c0cc05ed05d8 h1:htXgwGej8MmWFrJaGu+QnMSeaPBFAWEnVp22XS23G+M= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260716141634-c0cc05ed05d8/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260605202330-b5a89c32fdc1 h1:e4vdi3czYy+eK2j/eO5r3ceMxxkx4Qq5IsiAeSAQ9uc= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260605202330-b5a89c32fdc1/go.mod h1:wi1QdXqhSJnADt9YRaRtEWomqknLcrdkTS0JotupuOQ= github.com/smartcontractkit/chainlink-sui v0.0.0-20260713221039-69796c8a78ae h1:0vPX7KjVbdMLImLfeKXNDir0qswAwwQOMDAB/ciVPq8= diff --git a/system-tests/lib/go.mod b/system-tests/lib/go.mod index 027a46fb4ec..05152870687 100644 --- a/system-tests/lib/go.mod +++ b/system-tests/lib/go.mod @@ -45,7 +45,7 @@ require ( github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260623200841-e0322b819f62 github.com/smartcontractkit/chainlink-protos/job-distributor v0.20.1-0.20260701185448-696c075849ea github.com/smartcontractkit/chainlink-protos/linking-service/go v0.0.0-20260512230622-65f10f4cd305 - github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260630073003-fb8da7229930 + github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260716141634-c0cc05ed05d8 github.com/smartcontractkit/chainlink-stellar v0.0.3-0.20260714222251-887c274c6b64 github.com/smartcontractkit/chainlink-testing-framework/framework v0.16.6-0.20260708113039-95f97b2d25e9 github.com/smartcontractkit/chainlink-testing-framework/framework/components/chiprouter v1.0.4 diff --git a/system-tests/lib/go.sum b/system-tests/lib/go.sum index 8f3de6948ea..141cfbc1159 100644 --- a/system-tests/lib/go.sum +++ b/system-tests/lib/go.sum @@ -1609,8 +1609,8 @@ github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 h1:B7itmjy+C github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0/go.mod h1:h6kqaGajbNRrezm56zhx03p0mVmmA2xxj7E/M4ytLUA= github.com/smartcontractkit/chainlink-protos/svr v1.3.0 h1:vOw+MbXtkPK8l/hA7uLASIgCwv05YzmuoIMuOXPa+g0= github.com/smartcontractkit/chainlink-protos/svr v1.3.0/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260630073003-fb8da7229930 h1:x2nm4nDoC//WGQRPrInDmBH2/lTN1qAI/IGDQ3gAi7A= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260630073003-fb8da7229930/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260716141634-c0cc05ed05d8 h1:htXgwGej8MmWFrJaGu+QnMSeaPBFAWEnVp22XS23G+M= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260716141634-c0cc05ed05d8/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260605202330-b5a89c32fdc1 h1:e4vdi3czYy+eK2j/eO5r3ceMxxkx4Qq5IsiAeSAQ9uc= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260605202330-b5a89c32fdc1/go.mod h1:wi1QdXqhSJnADt9YRaRtEWomqknLcrdkTS0JotupuOQ= github.com/smartcontractkit/chainlink-solana/contracts v0.0.0-20260513123719-d347eaf314e1 h1:/xvuNFI7DwOoTQnmAdYPDdY+sConn3RgZ2rMy/8AXlo= diff --git a/system-tests/tests/go.mod b/system-tests/tests/go.mod index e4b00bd1078..de3185aeb6b 100644 --- a/system-tests/tests/go.mod +++ b/system-tests/tests/go.mod @@ -69,7 +69,7 @@ require ( github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20260713161920-de075095648b github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260623200841-e0322b819f62 github.com/smartcontractkit/chainlink-protos/ring/go v0.0.0-20260331131315-f08a616d8dcd - github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260630073003-fb8da7229930 + github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260716141634-c0cc05ed05d8 github.com/smartcontractkit/chainlink-testing-framework/framework v0.16.6-0.20260708113039-95f97b2d25e9 github.com/smartcontractkit/chainlink-testing-framework/framework/components/chiprouter v1.0.4 github.com/smartcontractkit/chainlink-testing-framework/framework/components/fake v0.15.0 diff --git a/system-tests/tests/go.sum b/system-tests/tests/go.sum index 4c30947622e..f1252ab9c45 100644 --- a/system-tests/tests/go.sum +++ b/system-tests/tests/go.sum @@ -1814,8 +1814,8 @@ github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 h1:B7itmjy+C github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0/go.mod h1:h6kqaGajbNRrezm56zhx03p0mVmmA2xxj7E/M4ytLUA= github.com/smartcontractkit/chainlink-protos/svr v1.3.0 h1:vOw+MbXtkPK8l/hA7uLASIgCwv05YzmuoIMuOXPa+g0= github.com/smartcontractkit/chainlink-protos/svr v1.3.0/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260630073003-fb8da7229930 h1:x2nm4nDoC//WGQRPrInDmBH2/lTN1qAI/IGDQ3gAi7A= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260630073003-fb8da7229930/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260716141634-c0cc05ed05d8 h1:htXgwGej8MmWFrJaGu+QnMSeaPBFAWEnVp22XS23G+M= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260716141634-c0cc05ed05d8/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260605202330-b5a89c32fdc1 h1:e4vdi3czYy+eK2j/eO5r3ceMxxkx4Qq5IsiAeSAQ9uc= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260605202330-b5a89c32fdc1/go.mod h1:wi1QdXqhSJnADt9YRaRtEWomqknLcrdkTS0JotupuOQ= github.com/smartcontractkit/chainlink-solana/contracts v0.0.0-20260513123719-d347eaf314e1 h1:/xvuNFI7DwOoTQnmAdYPDdY+sConn3RgZ2rMy/8AXlo=