Skip to content

[Bug]: t3 start exits at startup when the welcome thread's model is on a disabled provider #20962

Closed as not planned

Description

@derektrimm

Before submitting

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

Area

apps/server

Steps to reproduce

  1. Disable Codex and leave no default model set (or set the default model to any disabled instance). A clean data directory with only this settings.json is enough:

    { "providers": { "codex": { "enabled": false } } }
  2. From an empty directory, start the server in web mode, the t3 / npx t3 default:

    t3 start --base-dir <that data directory> --no-browser

Expected behavior

The server starts. If the welcome thread cannot use the fallback model, the project is still created and the server starts without a welcome thread, or uses an enabled provider.

Actual behavior

The server binds its port, then exits before it answers a request:

INFO: Listening on http://127.0.0.1:38774
ERROR: server runtime startup failed
  cause: 'ThreadManagementProviderInstanceDisabledError: Provider instance "codex" is disabled for project 39d35635-....
ERROR: ServerRuntimeStartupError: Server runtime startup failed before command readiness.

Web mode turns on autoBootstrapProjectFromCwd by default. When the working directory has no thread yet, resolveAutoBootstrapWelcomeTargets (serverRuntimeStartup.ts) launches a welcome thread with the project's default model, falling back to getAutoBootstrapThreadModelSelection(), which is always the codex instance. ThreadLaunchService.launch rejects a disabled instance, and that failure ends server.startup.

With Codex enabled, the same steps start the server and /.well-known/t3/environment answers 200. A default model on an enabled provider also avoids it, and so does T3CODE_AUTO_BOOTSTRAP_PROJECT_FROM_CWD=false. A default model on a disabled instance fails the same way: with Claude disabled and defaultModelSelection on claudeAgent, startup ends with Provider instance "claudeAgent" is disabled.

Impact

Blocks work completely

Version or commit

main @ 13aa882

Environment

Linux, Node 26.10.0, node apps/server/src/bin.ts start from a worktree of main

Workaround

Enable Codex, set a default model on an enabled provider, or start with T3CODE_AUTO_BOOTSTRAP_PROJECT_FROM_CWD=false.

Activity

  1. juliusmarminge commented on Oct 17, 2026

    @juliusmarminge
    Member

    Note

    Grok responding on behalf of Julius.

    Thanks for the detailed repro. This is the same startup failure as #20028: the welcome thread at startup launches on a disabled provider instance (Codex by default, or a disabled project default), ThreadLaunchService.launch rejects it with ThreadManagementProviderInstanceDisabledError, and startup exits. The open fix is #20035, which keeps startup going without the welcome thread and covers both the disabled-Codex and disabled-default cases you describe.

    Closing this as a duplicate so the discussion stays in #20028. Until #20035 lands, your workarounds (enable Codex, set a default model on an enabled provider, or start with T3CODE_AUTO_BOOTSTRAP_PROJECT_FROM_CWD=false) are the way around it.

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

    duplicateThis issue or pull request already exists

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions