Skip to content

0.5.211: after the run-without-AI hand-off, checkFirstRunStatus still polls :8080 (61/61) → "Backend unreachable" on macOS/Windows/Linux #48

Description

@emooreatx

0.5.211, all three desktops (macOS / Windows / Linux), run-without-AI login leg: after the hand-off the client re-points its API client to :4243 but checkFirstRunStatus keeps polling :8080 — 61/61 attempts on each — and parks on "Backend unreachable. Please restart the app."

Gate run: https://github.com/CIRISAI/CIRISAgent/actions/runs/34249106309 (CIRISAgent release/2.11.0 @ a33151b20, ciris-client 0.5.211, ciris-server 0.5.203). The no-AI setup pass is 7/7 on all three (announce 3/3 against the exec'd node on :4243); the login pass then finds screen='Startup' elements=2: [btn_debug_logs_toggle, btn_startup_retry] on every desktop. The with-AI legs are green with live answers, so this is specific to the hand-off window, and it is common code (identical lines on Windows and Linux), so Android/iOS will hit it too once their artifacts land.

#46 and #47 are confirmed fixed in this run: the hold is released ("Session already open — the post-setup hold is moot, releasing it") and the roster wait is skipped ("backend is the node on :4243 — no agent service roster to wait for"). This is the one caller #43's b9099f6 did not move.

macOS per-launch client log (ciris_desktop_setup.20260908T161048.log), verbatim, line-numbered:

242: [INFO][CIRISApiClient] [completeSetup] Setup complete: success=true, message=Setup completed successfully. Starting agent processor...
245: [INFO][CIRISApiClient] [setLocalNodeUrl] local node is http://127.0.0.1:4243 (was http://127.0.0.1:8080)
246: [INFO][CIRISApiClient] [updateBaseUrl] Updating baseUrl from http://127.0.0.1:8080 to http://127.0.0.1:4243
247: [INFO][CIRISApiClient] [recreateApiInstances] Recreating SDK API instances with baseUrl=http://127.0.0.1:4243
249: [CIRISApp] [INFO][BACKEND] after setup the backend is :4243
271: [INFO][StartupViewModel] [STARTUP][WAIT][8865ms] backend is the node on :4243 — no agent service roster to wait for
317: [CIRISApp] [INFO] Session already open — the post-setup hold is moot, releasing it
320: [INFO][StartupViewModel] [STARTUP][STATUS] Checking setup status...
323: [ERROR][CIRISApiClient] [getSetupStatus] Exception: ConnectException: Connection refused
338: [checkFirstRunStatus] [INFO] Connection error, retrying in 500ms... (ConnectException)
339: [INFO][StartupViewModel] [STARTUP][STATUS] Waiting for backend... (attempt 1)
340: [checkFirstRunStatus] [INFO] Attempt 2/61: Checking setup status at http://127.0.0.1:8080
397: [backend] backend down: BudgetExpired(budgetMs=5000)
398: [backend] reviving, attempt 1/5
399: [PythonRuntime.desktop] startServer() called, checking for server at http://127.0.0.1:4243
401: [PythonRuntime.desktop] Health check attempt 0: true
403: [backend] wait opened (revive requested), budget=90000ms
1490: [checkFirstRunStatus] [INFO] Attempt 61/61: Checking setup status at http://127.0.0.1:8080
1511: [CIRISApp] [ERROR] Backend unreachable, cannot determine setup status
1512: [ERROR][StartupViewModel] [STARTUP][ERROR] Error detected: Backend unreachable. Please restart the app.
1513: [INFO][StartupViewModel] [STARTUP][PHASE] READY -> ERROR (ERROR)

Every one of the 61 checkFirstRunStatus attempts after line 249 targets http://127.0.0.1:8080; none targets :4243. Meanwhile the client's own reviver (lines 399/401) checks :4243 and gets Health check attempt 0: true — the node is up and healthy the whole time; the agent exec'd into it at 16:11:00.657 and :8080 never comes back by design (desktop hand-off = exec, CIRISAgent e115d5546).

Windows (ciris_desktop_setup.20260908T161022.log), same shape:

249: [CIRISApp] [INFO][BACKEND] after setup the backend is :4243
317: [CIRISApp] [INFO] Session already open � the post-setup hold is moot, releasing it
340: [checkFirstRunStatus] [INFO] Attempt 2/61: Checking setup status at http://127.0.0.1:8080
531: [backend] reviving, attempt 1/5
532: [PythonRuntime.desktop] startServer() called, checking for server at http://127.0.0.1:4243
1490: [checkFirstRunStatus] [INFO] Attempt 61/61: Checking setup status at http://127.0.0.1:8080
1511: [CIRISApp] [ERROR] Backend unreachable, cannot determine setup status
1614: [PythonRuntime.desktop] startServer() called, checking for server at http://127.0.0.1:4243

Linux (ciris_desktop_setup.20260908T160937.log): 61/61 at :8080 as well; gate verdict linux run-without-AI login failed — Interact unreachable against a node-only backend.

Ask: StartupViewModel.checkFirstRunStatus / CIRISApiClient.getSetupStatus should follow ActiveBackend like the rest of the client now does — and when the backend is the node there is no /v1/setup/status to poll (that is an agent route): the node answering /v1/identity after a recorded run-without-AI hand-off is "setup complete", the same way you already short-circuit the service roster. Expected on our side after the fix: the three desktop no-AI login/reset legs clear; Android reset may still show CIRISServer#563.

Screenshot: shots/macos-login-noai.png in the run's live-qa-macos-ios artifact ("ERROR — Backend unreachable. Please restart the app." with the retry button).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions