Skip to content

[Bug]: macOS desktop reports backend readiness failure at 60 s although the server becomes ready seconds later #26237

Closed

Description

@seankoji

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Area

apps/desktop

Steps to reproduce

Observed on 2026-10-28 (Australia/Sydney). Reproducibility from a fresh install is not established; this T3 home has a 22 GB statev2.sqlite and a 1.0 GB state.sqlite.

  1. Launch T3 Code (Nightly) 0.1.4-nightly.20261027.3796 on macOS (darwin arm64) against that existing ~/.t3 home.
  2. Wait on the startup screen. The app reports "The server started but did not become ready in time."
  3. Compare the desktop trace with the child-server log; the same backend process becomes ready about 5 s after the timeout and the app loads.

Expected behavior

A backend that becomes ready shortly after the fixed 60 s readiness budget should not be reported as a failed start. Either the budget should account for migration and recovery time on a large state database, or a late success should replace the failure state without showing a failed start.

Actual behavior

waitForHttpReady for http://127.0.0.1:3773/.well-known/t3/environment ran 60,004 ms over 67 attempts: start 11:49:21.574, timeout 11:50:21.576.

The same child process (pid 87194) logged Migrations ran successfully at 11:50:03.474 and Listening on http://0.0.0.0:3773 at 11:50:04.147. desktop.backendInstance.onReady then fired at 11:50:27.033 for runId 86e50015f96c. That process is still serving the app.

The start was declared failed at 60 s and succeeded at about 66 s. Four readiness-timeout snapshots were recorded on this machine between 2026-10-20 and 2026-10-28.

Impact

Minor bug or occasional failure

Version or commit

0.1.4-nightly.20261027.3796 (b88da91)

Environment

macOS darwin arm64, local managed backend (no WSL, no SSH environment). Existing T3 home: statev2.sqlite 22 GB, state.sqlite 1.0 GB.

Logs or stack traces

desktop.trace.ndjson (runId 86e50015f96c)
shared.httpReadiness.waitForHttpReady
  baseUrl: http://127.0.0.1:3773/
  requestUrl: http://127.0.0.1:3773/.well-known/t3/environment
  timeoutMs: 60000, intervalMs: 100, probeTimeoutMs: 1000, attempts: 67
  durationMs: 60004.121292
desktop.backendInstance.onReadinessFailure
  error: Timed out after 60000ms waiting for desktop backend readiness at http://127.0.0.1:3773/.well-known/t3/environment.
desktop.backendInstance.onReady
  fired 5.5 s after the failure span ended, same runId

logs/server-child.log (runId 86e50015f96c)
[11:50:03.474] INFO (#55): Migrations ran successfully
  migrations: [ '70_PeerLinks', '71_PeerLinkFence', '72_WaitingLinkRequestIndex' ]
[11:50:03.567] INFO (#140): Stopping an OpenCode server left by a previous T3 Code server
  { pid: ..., port: ... }
[11:50:04.147] INFO (#6571): Listening on http://0.0.0.0:3773
backend child process failure output end
  details: Timed out after 60000ms waiting for desktop backend readiness at http://127.0.0.1:3773/.well-known/t3/environment.

Workaround

Wait; the backend becomes ready and the app loads. Relaunching also works, with the same startup cost.

Related

Activity

  1. loganprit commented on Oct 31, 2026

    @loganprit

    Confirmed another occurrence after updating the macOS desktop app to 0.1.6-nightly.20261031.3956, release tag commit d92c437baa19409f99416a44f748f148f4317c65.

    The desktop displayed "T3 Code could not start", "The server started but did not become ready in time", and "The server wrote no output". It offered a downgrade to 0.1.6-nightly.20261029.3892. The backend continued running and the desktop opened its main window automatically about 35 seconds after the error appeared.

    This occurrence identifies a specific migration that exceeded the entire readiness budget. Trace times below are UTC on 2026-10-31.

    Event Time or duration
    Backend child started, PID 77721 02:58:14.265
    Readiness probe started 02:58:14.267
    runMigrations 79,965.841 ms, successful
    Migrator 73_ActiveTurnItemIndexes 79,444.193 ms, successful
    Create orchestration_v2_projection_turn_items_active_ordinal_idx 44,644.668 ms, successful
    Create orchestration_v2_projection_turn_items_active_run_idx 34,794.508 ms, successful
    Initial readiness probe timed out 02:59:14.278, 60,011.040 ms elapsed
    Startup error window shown 02:59:14.319
    Subsequent startup recovery phase 11,600.935 ms, successful
    Server published readiness 02:59:48.844
    Desktop onReady and main-window creation 02:59:49.115

    The same PID remained alive. A later read-only request to http://127.0.0.1:3773/.well-known/t3/environment returned serverVersion: 0.1.6-nightly.20261031.3956.

    Source at the affected release tag supports the trace:

    Environment: macOS 27.0.1, build 26A434, arm64, MacBookPro18,2, 32 GiB RAM. Local desktop-managed backend, no WSL or SSH involved in this startup. The existing statev2.sqlite file was approximately 16 GiB. The triage CLI version was also 0.1.6-nightly.20261031.3956; the affected desktop version was independently checked from its app bundle and the live endpoint.

    Observed once during this update. No fresh-install or repeat-launch reproduction was attempted. No application restart, downgrade, configuration change, or direct database write was performed during triage. The migration completed successfully and the app recovered without intervention.

    This appears to be the same misleading 60-second failure described here, with fresh evidence that migration 073 alone can exceed that budget on an existing large database. A screenshot of the failure dialog is available for the reporter to attach.

    Prepared by the Codex agent via t3 triage using 6.1 Sol.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions