Repository navigation
Description
Summary
On a fresh launch, T3 Code (Alpha) 0.0.27 appears to start (process is alive, Dock icon, "running") but no window ever opens. The root cause is the local backend sidecar crash-looping during DB migrations: migration 24_BackfillProjectionThreadShellSummary fails because of a missing column on a pre-existing state.sqlite, so the backend exits with code 1 repeatedly (500ms → 1s → 2s → 4s backoff) and the renderer/window is never created.
This happens when ~/.t3/userdata/state.sqlite was created by the predecessor "DP Code (Alpha)" build (0.0.25) and is then opened by T3 Code 0.0.27. The shared ~/.t3/userdata directory carries a schema that migration 24 can't apply against.
Environment
- App: T3 Code (Alpha) 0.0.27 (installed via Homebrew cask
t3-code) - macOS: Sequoia (Darwin 24.6.0), Apple Silicon (arm64)
- Pre-existing data dir originally created by DP Code (Alpha) 0.0.25; migrations applied through
23_ProjectionThreadShellSummary(dated 2026-04-12) before the upgrade.
Symptoms
ps auxshows the main process + GPU process + network utility helper, but no--type=rendererprocess → no window.- No macOS crash report (the backend child exits cleanly with code 1; the Electron shell stays up waiting).
desktop-backend-manager:backend exited unexpectedly; restart scheduled reason: code=1in a loop.
Exact error (from ~/.t3/userdata/logs/server-child.log)
INFO: Running all migrations...
ERROR: MigrationError: Migration "24_BackfillProjectionThreadShellSummary" failed
at runMigrations (app.asar/apps/server/dist/bin.mjs:12409:9)
[cause]: effect/sql/SqlError: Failed to prepare statement
at NodeSqliteClient-C-seYk0y.mjs:67:23
[cause]: effect/sql/SqlError/UnknownError: Failed to prepare statement
[cause]: Error: no such column: latest_user_message_at
Migration 24 references latest_user_message_at on projection_threads, but that column does not exist in a DB last migrated through #23 by the older DP Code build.
Reproduction
- Have a
~/.t3/userdata/state.sqliteproduced by DP Code (Alpha) 0.0.25 (migrations through23_ProjectionThreadShellSummary). - Install/launch T3 Code (Alpha) 0.0.27.
- Backend runs migrations on startup → migration 24 throws
no such column: latest_user_message_at→ backend exits code 1 → crash-loop → window never appears.
Workaround (confirmed)
Quit the app, move the DB aside, relaunch:
pkill -i "T3 Code"
mv ~/.t3/userdata/state.sqlite ~/.t3/userdata/state.sqlite.bak
open -a "T3 Code (Alpha)"A clean DB runs all 32 migrations successfully (Migrations ran successfully → Listening on http://127.0.0.1:3773) and the window renders. This loses local thread history.
Suggested fixes
- Make migration 24 tolerant of a
projection_threadstable that lackslatest_user_message_at(guard with a column-exists check, or ensure the column is added by an earlier migration in the chain before the backfill runs). - Surface backend migration failures in the UI instead of silently crash-looping with no window (e.g. an error screen with the failing migration + a "reset local data" affordance).
Activity
juliusmarminge commentedon Jun 11, 2026
we cannot guarantee your state will be able to migrate when you go to forks that write to the same state dir...
we should have a better recovery path for when the state is broken so at least an error window opens, which is high on my list after my current backlog clears
juliusmarminge commentedon Jul 20, 2026
The reported migration involved a fork sharing and mutating the same T3 state directory, which is not a supported cross-fork migration contract. Please provide a current clean-state or first-party-upgrade reproduction if the migration can fail without shared fork state; recovery UX can be tracked separately.\n\n
t3-code-bot commentedon Aug 20, 2026
closing as not planned. Cross-fork worktree and PR-state migration is not supported, and this issue is already labeled invalid.