From d4c0587df086a73afeef4533f24aa139efc7d369 Mon Sep 17 00:00:00 2001 From: archipelago Date: Wed, 17 Jun 2026 06:33:04 -0400 Subject: [PATCH] fix(health): IndeeHub API waits for MinIO before restart (#41) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The IndeeHub API needs MinIO (object storage) up to serve, but the health monitor's dependency map listed only postgres + redis, so it would restart the API while MinIO was still starting — the "recovers only after 1-2 container restarts" symptom. Add indeedhub-minio to the API's deps; MinIO has no deps of its own so the monitor restarts it first, no deadlock. (First-start ordering in the stack definition is a deeper, separate follow-up.) Co-Authored-By: Claude Opus 4.8 (1M context) --- core/archipelago/src/health_monitor.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/archipelago/src/health_monitor.rs b/core/archipelago/src/health_monitor.rs index fbd79f4c..d59d4221 100644 --- a/core/archipelago/src/health_monitor.rs +++ b/core/archipelago/src/health_monitor.rs @@ -76,8 +76,12 @@ fn container_dependencies(name: &str) -> &'static [&'static str] { "fedimint" => &["bitcoin"], "fedimint-gateway" => &["bitcoin", "fedimint"], - // IndeedHub stack - "indeedhub-api" => &["indeedhub-postgres", "indeedhub-redis"], + // IndeedHub stack. The API needs MinIO (object storage) up before it + // can serve — without listing it the health monitor would restart the + // API while MinIO was still coming up, which is the "needs 1-2 restarts + // to recover" symptom (#41). MinIO has no deps of its own, so the + // monitor restarts it independently first; no deadlock. + "indeedhub-api" => &["indeedhub-postgres", "indeedhub-redis", "indeedhub-minio"], "indeedhub" => &["indeedhub-api"], "indeedhub-relay" => &["indeedhub-postgres"], "indeedhub-ffmpeg" => &["indeedhub-api"],