diff --git a/workspace-server/internal/handlers/workspace.go b/workspace-server/internal/handlers/workspace.go index 2265f2ff..28ee5f04 100644 --- a/workspace-server/internal/handlers/workspace.go +++ b/workspace-server/internal/handlers/workspace.go @@ -807,9 +807,11 @@ func (h *WorkspaceHandler) Delete(c *gin.Context) { pq.Array(allIDs)); err != nil { log.Printf("Delete token revocation error for %s: %v", id, err) } - // Disable schedules for removed workspaces (#1027) +// #1027: cascade-disable all schedules for the deleted workspaces so + // the scheduler never fires a cron into a removed container. if _, err := db.DB.ExecContext(ctx, - `UPDATE workspace_schedules SET enabled = false WHERE workspace_id = ANY($1::uuid[])`, + `UPDATE workspace_schedules SET enabled = false, updated_at = now() + WHERE workspace_id = ANY($1::uuid[]) AND enabled = true`, pq.Array(allIDs)); err != nil { log.Printf("Delete schedule disable error for %s: %v", id, err) }