From 3d32f2d92f9362301fd65268401e21e9e560dbb0 Mon Sep 17 00:00:00 2001 From: Arthur Belleville Date: Fri, 15 May 2026 10:18:53 +0200 Subject: [PATCH] fix(04-WR-01): check UpdateTask errors in TaskReorderHandler instead of discarding Both the single-task branch and the main loop were using _, _ = to discard UpdateTask errors. Now both log the error and return 500 so the client is never shown a false success when DB writes fail. Co-Authored-By: Claude Sonnet 4.6 (1M context) --- backend/internal/web/handlers_tasks.go | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/backend/internal/web/handlers_tasks.go b/backend/internal/web/handlers_tasks.go index 78977ff..8786bba 100644 --- a/backend/internal/web/handlers_tasks.go +++ b/backend/internal/web/handlers_tasks.go @@ -445,13 +445,18 @@ func TaskReorderHandler(deps TasksDeps) http.HandlerFunc { if _, scanErr := fmt.Sscanf(positionVal, "%d", &newPos); scanErr != nil || newPos <= 0 { newPos = 100 } - _, _ = deps.Queries.UpdateTask(ctx, sqlc.UpdateTaskParams{ + if _, err := deps.Queries.UpdateTask(ctx, sqlc.UpdateTaskParams{ ID: existing.ID, Title: existing.Title, Description: existing.Description, Status: newStatus, Position: newPos, - }) + }); err != nil { + slog.Default().Error("tasks reorder: UpdateTask failed (single)", + "task_id", existing.ID, "err", err) + http.Error(w, "internal server error", http.StatusInternalServerError) + return + } } } tasks, _ := deps.Queries.ListTasksByTablo(ctx, tablo.ID) @@ -486,13 +491,18 @@ func TaskReorderHandler(deps TasksDeps) http.HandlerFunc { } // Preserve title+description; only update status+position (T-04-08). - _, _ = deps.Queries.UpdateTask(ctx, sqlc.UpdateTaskParams{ + if _, err := deps.Queries.UpdateTask(ctx, sqlc.UpdateTaskParams{ ID: existing.ID, Title: existing.Title, Description: existing.Description, Status: newStatus, Position: newPos, - }) + }); err != nil { + slog.Default().Error("tasks reorder: UpdateTask failed", + "task_id", existing.ID, "err", err) + http.Error(w, "internal server error", http.StatusInternalServerError) + return + } } tasks, err := deps.Queries.ListTasksByTablo(ctx, tablo.ID)