From 78ab91983a8053226870e76e3bdf7702634b2bc8 Mon Sep 17 00:00:00 2001 From: Winter Date: Sat, 9 Aug 2025 01:21:19 -0400 Subject: [PATCH] spindle/engine: run DestroyWorkflow when setup fails Change-Id: ttsklrrustymunptwmqwrpmulospwvns It's possible for SetupWorkflow to provision resources and also fail, so this makes sense for robustness. Signed-off-by: Winter --- spindle/engine/engine.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/spindle/engine/engine.go b/spindle/engine/engine.go index 173bd9e..a418777 100644 --- a/spindle/engine/engine.go +++ b/spindle/engine/engine.go @@ -62,6 +62,12 @@ func StartWorkflows(e Engine, l *slog.Logger, vault secrets.Manager, cfg *config // TODO(winter): Should this always set StatusFailed? // In the original, we only do in a subset of cases. l.Error("setting up worklow", "wid", wid, "err", err) + + destroyErr := e.DestroyWorkflow(ctx, wid) + if destroyErr != nil { + l.Error("failed to destroy workflow after setup failure", "error", destroyErr) + } + dbErr := db.StatusFailed(wid, err.Error(), -1, n) if dbErr != nil { return dbErr -- 2.43.0