Skip to content

[Bug]: Desktop app shows white screen instead of UI #3080

@bmangust

Description

@bmangust

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

  1. Install app with brew install --cask t3-code
  2. Run app from /Applications folder

Tried to move ~/.t3 folder - same behaviour.
Added logs, network and performance dumps.

Checked connection with curl - it's alive.
curl telnet://127.0.0.1:3773 -v

  • Trying 127.0.0.1:3773...
  • Connected to 127.0.0.1 (127.0.0.1) port 3773

Expected behavior

App starts normally

Actual behavior

  1. App is starting, but UI is not loading (just white screen).
  2. In-browser app starts normally with npx t3@latest

Impact

Blocks work completely

Version or commit

0.0.27 (a3422a9)

Environment

MacBook Air M1 2020, macOS Sequoia Version 15.2 (24C101), node v22.12.0, bun 1.3.5

Logs or stack traces

➜  logs pwd
/Users/maks/.t3/userdata/logs
➜  logs grep ERROR -rnwi .
./server-child.log:8:{"message":"backend child process output","level":"ERROR","timestamp":"2026-06-14T13:37:05.747Z","annotations":{"component":"desktop-backend-child","runId":"936dad05f687","stream":"stderr","text":"(node:15520) [DEP0180] DeprecationWarning: fs.Stats constructor is deprecated.\n(Use `T3 Code (Alpha) --trace-deprecation ...` to show where the warning was created)\n"},"spans":{},"fiberId":"#backend-child"}

./desktop.trace.ndjson:67:{"type":"effect-span","name":"http.client GET","traceId":"230c3c0c5dfc763351137f6e1645938c","spanId":"e0ffef3620b926d4","parentSpanId":"693eb3a64680f7e1","sampled":true,"kind":"client","startTimeUnixNano":"1781444213383865583","endTimeUnixNano":"1781444213386984374","durationMs":3.118791,"attributes":{"http.request.method":"GET","server.address":"http://127.0.0.1:3773","server.port":3773,"url.full":"http://127.0.0.1:3773/.well-known/t3/environment","url.path":"/.well-known/t3/environment","url.scheme":"http"},"events":[],"links":[],"exit":{"_tag":"Failure","cause":"HttpClientError: Transport error (GET http://127.0.0.1:3773/.well-known/t3/environment)\n    at catch (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/node_modules/@effect/platform-node/dist/NodeHttpClient.js:163:21)\n    at file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/node_modules/effect/dist/internal/effect.js:699:103\n    at ~effect/Utils/internal (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/node_modules/effect/dist/Utils.js:79:12)\n    at file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/node_modules/effect/dist/internal/effect.js:699:84\n    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n    at http.client GET\n    at desktop.backendManager.waitForHttpReady (Alpha)\n    at desktop.backendManager.waitForHttpReady (definition) (/Applications/T3 Code (Alpha).app/Contents/Resources/app.asar/apps/desktop/dist-electron/main.cjs:11447:40)\n    at runBackendProcess (/Applications/T3 Code (Alpha).app/Contents/Resources/app.asar/apps/desktop/dist-electron/main.cjs:11587:19)\n    at runBackendProcess (definition) (/Applications/T3 Code (Alpha).app/Contents/Resources/app.asar/apps/desktop/dist-electron/main.cjs:11467:41)\n    at desktop.backendManager.start (Alpha)\n    at desktop.bootstrap (/Applications/T3 Code (Alpha).app/Contents/Resources/app.asar/apps/desktop/dist-electron/main.cjs:12834:23)\n    at desktop.startup (/Applications/T3 Code (Alpha).app/Contents/Resources/app.asar/apps/desktop/dist-electron/main.cjs:12862:23)\n    at desktop.app (/Applications/T3 Code (Alpha).app/Contents/Resources/app.asar/apps/desktop/dist-electron/main.cjs:12878:24) {\n  [cause]: Error: connect ECONNREFUSED 127.0.0.1:3773\n      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1705:16)\n}"}}
...
./server.trace.ndjson:205:{"type":"effect-span","name":"runClaudeCommand","traceId":"44268f6226c0d4244da2de086f9d7590","spanId":"670eded3e9b3ff96","parentSpanId":"6d97aac92af927b7","sampled":true,"kind":"internal","startTimeUnixNano":"1781444214645194041","endTimeUnixNano":"1781444214648677458","durationMs":3.483417,"attributes":{},"events":[],"links":[],"exit":{"_tag":"Failure","cause":"PlatformError: NotFound: ChildProcess.spawn (claude --version)\n    at Module.systemError (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/node_modules/effect/dist/PlatformError.js:166:39)\n    at file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/node_modules/@effect/platform-node-shared/dist/internal/utils.js:28:24\n    at toPlatformError (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js:25:54)\n    at ChildProcess.<anonymous> (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js:230:26)\n    at ChildProcess.emit (node:events:509:28)\n    at ChildProcess._handle.onexit (node:internal/child_process:293:12)\n    at onErrorNT (node:internal/child_process:508:16)\n    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n    at runClaudeCommand (Alpha)\n    at runClaudeCommand (definition) (Alpha)\n    at checkClaudeProviderStatus (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:35850:25)\n    at checkClaudeProviderStatus (definition) (Alpha)\n    at applySnapshot (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:35730:83)\n    at applySnapshot (definition) (Alpha)\n    at makeManagedServerProvider (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:35851:27)\n    at makeManagedServerProvider (definition) (Alpha) {\n  [cause]: Error: spawn claude ENOENT\n      at ChildProcess._handle.onexit (node:internal/child_process:287:19)\n      at onErrorNT (node:internal/child_process:508:16)\n      at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n}"}}
./server.trace.ndjson:264:{"type":"effect-span","name":"runClaudeCommand","traceId":"ad8432a98588f17ddb2526adb5982f4b","spanId":"ed9a25642470302b","parentSpanId":"48b1d65c04f32f77","sampled":true,"kind":"internal","startTimeUnixNano":"1781444219787193375","endTimeUnixNano":"1781444219792727708","durationMs":5.534333,"attributes":{},"events":[],"links":[],"exit":{"_tag":"Failure","cause":"PlatformError: NotFound: ChildProcess.spawn (claude --version)\n    at Module.systemError (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/node_modules/effect/dist/PlatformError.js:166:39)\n    at file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/node_modules/@effect/platform-node-shared/dist/internal/utils.js:28:24\n    at toPlatformError (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js:25:54)\n    at ChildProcess.<anonymous> (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js:230:26)\n    at ChildProcess.emit (node:events:509:28)\n    at ChildProcess._handle.onexit (node:internal/child_process:293:12)\n    at onErrorNT (node:internal/child_process:508:16)\n    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n    at runClaudeCommand (Alpha)\n    at runClaudeCommand (definition) (Alpha)\n    at checkClaudeProviderStatus (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:35850:25)\n    at checkClaudeProviderStatus (definition) (Alpha)\n    at applySnapshot (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:35730:83)\n    at applySnapshot (definition) (Alpha)\n    at refreshSnapshot (Alpha)\n    at refreshSnapshot (definition) (Alpha)\n    at refreshOneSource (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:69224:55)\n    at refreshOneSource (definition) (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:69157:34) {\n  [cause]: Error: spawn claude ENOENT\n      at ChildProcess._handle.onexit (node:internal/child_process:287:19)\n      at onErrorNT (node:internal/child_process:508:16)\n      at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n}"}}
./server.trace.ndjson:550:{"type":"effect-span","name":"runClaudeCommand","traceId":"44268f6226c0d4244da2de086f9d7590","spanId":"bcd320400fc9f8c2","parentSpanId":"aa477259085a60e4","sampled":true,"kind":"internal","startTimeUnixNano":"1781444514647190666","endTimeUnixNano":"1781444514651114708","durationMs":3.924042,"attributes":{},"events":[],"links":[],"exit":{"_tag":"Failure","cause":"PlatformError: NotFound: ChildProcess.spawn (claude --version)\n    at Module.systemError (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/node_modules/effect/dist/PlatformError.js:166:39)\n    at file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/node_modules/@effect/platform-node-shared/dist/internal/utils.js:28:24\n    at toPlatformError (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js:25:54)\n    at ChildProcess.<anonymous> (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js:230:26)\n    at ChildProcess.emit (node:events:509:28)\n    at ChildProcess._handle.onexit (node:internal/child_process:293:12)\n    at onErrorNT (node:internal/child_process:508:16)\n    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n    at runClaudeCommand (Alpha)\n    at runClaudeCommand (definition) (Alpha)\n    at checkClaudeProviderStatus (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:35850:25)\n    at checkClaudeProviderStatus (definition) (Alpha)\n    at applySnapshot (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:35730:83)\n    at applySnapshot (definition) (Alpha)\n    at refreshSnapshot (Alpha)\n    at refreshSnapshot (definition) (Alpha)\n    at makeManagedServerProvider (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:35851:27)\n    at makeManagedServerProvider (definition) (Alpha) {\n  [cause]: Error: spawn claude ENOENT\n      at ChildProcess._handle.onexit (node:internal/child_process:287:19)\n      at onErrorNT (node:internal/child_process:508:16)\n      at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n}"}}
./server.trace.ndjson:700:{"type":"effect-span","name":"runClaudeCommand","traceId":"44268f6226c0d4244da2de086f9d7590","spanId":"05ca7af5acaf1a1b","parentSpanId":"443295f522e19a4c","sampled":true,"kind":"internal","startTimeUnixNano":"1781445626412229750","endTimeUnixNano":"1781445626420151875","durationMs":7.922125,"attributes":{},"events":[],"links":[],"exit":{"_tag":"Failure","cause":"PlatformError: NotFound: ChildProcess.spawn (claude --version)\n    at Module.systemError (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/node_modules/effect/dist/PlatformError.js:166:39)\n    at file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/node_modules/@effect/platform-node-shared/dist/internal/utils.js:28:24\n    at toPlatformError (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js:25:54)\n    at ChildProcess.<anonymous> (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js:230:26)\n    at ChildProcess.emit (node:events:509:28)\n    at ChildProcess._handle.onexit (node:internal/child_process:293:12)\n    at onErrorNT (node:internal/child_process:508:16)\n    at processTicksAndRejections (node:internal/process/task_queues:90:21)\n    at runNextTicks (node:internal/process/task_queues:69:3)\n    at listOnTimeout (node:internal/timers:567:9)\n    at runClaudeCommand (Alpha)\n    at runClaudeCommand (definition) (Alpha)\n    at checkClaudeProviderStatus (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:35850:25)\n    at checkClaudeProviderStatus (definition) (Alpha)\n    at applySnapshot (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:35730:83)\n    at applySnapshot (definition) (Alpha)\n    at refreshSnapshot (Alpha)\n    at refreshSnapshot (definition) (Alpha)\n    at makeManagedServerProvider (file:///Applications/T3%20Code%20(Alpha).app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:35851:27)\n    at makeManagedServerProvider (definition) (Alpha) {\n  [cause]: Error: spawn claude ENOENT\n      at ChildProcess._handle.onexit (node:internal/child_process:287:19)\n      at onErrorNT (node:internal/child_process:508:16)\n      at processTicksAndRejections (node:internal/process/task_queues:90:21)\n      at runNextTicks (node:internal/process/task_queues:69:3)\n      at listOnTimeout (node:internal/timers:567:9)\n      at process.processTimers (node:internal/timers:541:7)\n}"}}

t3_logs.zip
t3_console.log
T3_network.har.zip
T3_Trace-20260614T154437.json.gz

Screenshots, recordings, or supporting files

No response

Workaround

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething is broken or behaving incorrectly.needs-triageIssue needs maintainer review and initial categorization.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions