From 24a9979432cc0ece633a609ac0b468d5a82a4294 Mon Sep 17 00:00:00 2001 From: Mitchell-Johnson Date: Sat, 10 Oct 2026 14:58:13 -0700 Subject: [PATCH] Docker updates: a machine without Docker answers empty, not 500 The hub used to answer this for its nodes and hid the node's 500. Now the node answers itself, so it needs the same guard the stack list has. Co-Authored-By: Claude Opus 5.5 --- internal/api/stacks.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/internal/api/stacks.go b/internal/api/stacks.go index 5e3c42b..061ad5c 100644 --- a/internal/api/stacks.go +++ b/internal/api/stacks.go @@ -809,6 +809,10 @@ func checkImages(ctx context.Context, images []string) []imageCheck { // machineUpdates checks every image on this machine in one pass, so the container list can // be coloured and "what is behind?" answered without walking stack by stack. func (s *Server) machineUpdates(w http.ResponseWriter, r *http.Request) { + if dockerTool() == "" { // no Docker is an empty answer, not a failure + jsonOK(w, 200, map[string]any{"images": []imageCheck{}, "checked": 0, "stacks": map[string][]string{}}) + return + } ctx, cancel := context.WithTimeout(r.Context(), 10*time.Minute) defer cancel() stacks, err := s.findStacks(ctx)