diff --git a/neode-ui/src/views/OnboardingSeedGenerate.vue b/neode-ui/src/views/OnboardingSeedGenerate.vue index d170abb5..eb3b8885 100644 --- a/neode-ui/src/views/OnboardingSeedGenerate.vue +++ b/neode-ui/src/views/OnboardingSeedGenerate.vue @@ -259,9 +259,11 @@ async function generateSeed() { loading.value = false waitingForServer.value = false } catch (err) { - loading.value = false if (isServerStartingError(err)) { - // Backend not ready yet — keep waiting, retry silently. + // Backend not ready yet — keep waiting, retry silently. `loading` stays + // true through the whole retry loop: dropping it here unmounts the lock + // icon and status text for the 4s between attempts, which reads as the + // screen flashing in and out (reported on a live install test). if (!waitingForServer.value) { waitingForServer.value = true startElapsedTimer() @@ -270,6 +272,7 @@ async function generateSeed() { } else { // Genuine failure — stop the silent loop and surface it with a manual retry. stopTimers() + loading.value = false waitingForServer.value = false errorMessage.value = err instanceof Error ? err.message : 'Failed to generate seed' }