From 393d56d4ca7dff427c39aaa2bbb0c0ebf7d9f621 Mon Sep 17 00:00:00 2001 From: Dmitrii Iurco Date: Wed, 27 May 2026 14:29:10 -0400 Subject: [PATCH] fix: block auto-save when DDNS availability check is unreachable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 'unreachable' should not be a terminal state that triggers auto-save — it was causing a 503 when the availability check failed and auto-save fired the backend registration attempt. Only 'available' allows auto-save when the cell name has changed from the loaded value. Co-Authored-By: Claude Sonnet 4.6 --- webui/src/pages/Settings.jsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/webui/src/pages/Settings.jsx b/webui/src/pages/Settings.jsx index 28d51c0..d09ce03 100644 --- a/webui/src/pages/Settings.jsx +++ b/webui/src/pages/Settings.jsx @@ -691,10 +691,10 @@ function Settings() { if (!identityDirty) return; if (ipRangeError || cellNameError || domainError) return; // In pic_ngo mode, if the cell name differs from what was last saved/loaded, - // wait for the availability check to reach a terminal state before saving. - // 'available' and 'unreachable' are terminal; null/'checking'/'taken' are not. + // only auto-save once the check confirms the name is available. + // All other states (null, 'checking', 'taken', 'unreachable') block auto-save. if (domainMode === 'pic_ngo' && identity.cell_name !== loadedCellName) { - if (picAvail !== 'available' && picAvail !== 'unreachable') return; + if (picAvail !== 'available') return; } const timer = setTimeout(() => saveIdentityRef.current(), 800); return () => clearTimeout(timer);