From 0fea8f58e4776f9dfadb61d686ff1d7176776db7 Mon Sep 17 00:00:00 2001 From: Marco Allegretti Date: Wed, 11 Mar 2026 18:43:16 +0100 Subject: [PATCH] fix(appd): mark session Stopped when WEFT_RUNTIME_BIN is absent Previously the supervisor returned Ok(()) without updating the session state, leaving it in Starting indefinitely. Now it sets state to Stopped, removes the abort sender, and broadcasts AppState:stopped before returning, consistent with every other early-exit path. --- crates/weft-appd/src/runtime.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/crates/weft-appd/src/runtime.rs b/crates/weft-appd/src/runtime.rs index 1306df1..e09e2b0 100644 --- a/crates/weft-appd/src/runtime.rs +++ b/crates/weft-appd/src/runtime.rs @@ -134,6 +134,13 @@ pub(crate) async fn supervise( Ok(b) => b, Err(_) => { tracing::debug!(session_id, %app_id, "WEFT_RUNTIME_BIN not set; skipping process spawn"); + let mut reg = registry.lock().await; + reg.set_state(session_id, AppStateKind::Stopped); + reg.remove_abort_sender(session_id); + let _ = reg.broadcast().send(Response::AppState { + session_id, + state: AppStateKind::Stopped, + }); return Ok(()); } };