From 9d32aaf55859b77165adec443fe6ea94e79da471 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Fri, 20 Mar 2026 19:30:19 +0100 Subject: [PATCH] If agent cancels a workflow we need to report that back to the queue too (#6262) --- server/rpc/rpc.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/server/rpc/rpc.go b/server/rpc/rpc.go index d02b72e94..f899fe5ee 100644 --- a/server/rpc/rpc.go +++ b/server/rpc/rpc.go @@ -350,17 +350,23 @@ func (s *RPC) Done(c context.Context, strWorkflowID string, state rpc.WorkflowSt logger.Error().Err(err).Msgf("pipeline.UpdateWorkflowStatusToDone: cannot update workflow state: %s", err) } + var queueErr error if !state.Canceled { - var queueErr error if workflow.Failing() { queueErr = s.queue.Error(c, strWorkflowID, fmt.Errorf("workflow finished with error %s", state.Error)) } else { queueErr = s.queue.Done(c, strWorkflowID, workflow.State) } - if queueErr != nil { - logger.Error().Err(queueErr).Msg("queue.Done: cannot ack workflow") + } else { + if workflow.Started > 0 { + queueErr = s.queue.Done(c, strWorkflowID, model.StatusKilled) + } else { + queueErr = s.queue.Done(c, strWorkflowID, model.StatusCanceled) } } + if queueErr != nil { + logger.Error().Err(queueErr).Msg("queue.Done: cannot ack workflow") + } currentPipeline.Workflows, err = s.store.WorkflowGetTree(currentPipeline) if err != nil {