Repository navigation
Closed
Labels
questionFurther information is requestedFurther information is requestedvia-triageFiled through npx t3 triageFiled through npx t3 triage
Description
Summary
T3 keeps Factory Droid pinned to 0.233.0 via a stale cached ACP registry index, and 0.233.0 cannot open any session through T3 because its session/new worker crashes whenever mcpServers is non-empty — which it always is, since T3 attaches its t3-code bridge. The live registry already lists 0.238.0, in which I verified the full session-open sequence works. Nothing in T3 refreshes the index or tells the user an update exists, and the failure message hides the actual cause.
Environment
- T3 Code (Nightly) desktop
0.0.46-nightly.20261011.2980, macOS arm64 - Managed install:
droid@0.233.0at~/.t3/tools/factory-droid/0.233.0 - Local index cache
~/.t3/caches/acp-registry/registry.jsondated Oct 5 →factory-droid 0.233.0; live index athttps://cdn.agentclientprotocol.com/registry/v1/latest/registry.json→factory-droid 0.238.0(checked Oct 11)
Evidence (all reproduced locally)
delegate_taskwithacpRegistry_factory_droidfails withFailed to open acpRegistry provider session .... Provider log showsinitialize: succeeded, thensession/new: failed(errorTag: AcpRequestError) retried 5x. Droid's own log (~/.factory/logs/console.log) shows the real cause:Droid process exited unexpectedly (exit code 1).- Replaying the exact captured
session/new(cwd+ the singlet3-codeacp-mcp-bridgeentry) against the managed 0.233.0 binary reproduces the exit-1 crash.mcpServers: []succeeds. A trivial self-written stdio MCP server also crashes it — so this is not about the bridge, cwd, auth, or skills; 0.233.0 cannot handle anymcpServers. - Same payloads against droid 0.238.0 (from Factory.app):
session/newsucceeds, andsession/set_config_optionformodel,reasoning_effort,autonomy_levelall return properconfigOptions(i.e. the [Bug]: Factory Droid sessions fail for every selected model because session/set_config_option returns no configOptions #16454 bug is also fixed there). - Manually upgrading T3's managed copy to 0.238.0 gets reverted within a minute:
readPackageReceiptenforces installed-manifest == pinned version, so local upgrades cannot stick.
Relevant code (main)
packages/provider-acp-registry/src/server/AcpRegistrySupport.ts:loadRegistryis cache-first (loadCachedRegistry, ~line 874); only the search/add-update flows callrefreshRegistry(~lines 1577, 1622). Session open therefore keeps resolving the stale pin.packages/provider-acp/src/server/adapter.ts:acpMcpContext(~line 680) attaches the bridge to every session with an MCP credential, so the 0.233.0 crash is unavoidable on the pinned version.ProviderSessionManagerV2LayerOptions.configureMcpis test-only; there is no user-facing way to omit the bridge.
Related
- [Bug]: Factory Droid sessions fail for every selected model because session/set_config_option returns no configOptions #16454 (closed, fix-belongs-in-Droid) and its duplicate Factory Droid ACP thread hangs before the first response #17108: the
set_config_option{}bug — fixed upstream in 0.238.0. - [Bug]: ACP provider session fails to open - acpRegistry_cline throws "Provider session failed to open" mid-session #17072: same error string, different (Cline-specific) cause.
- PR fix(server): provider session failures show the provider's reason #14969 (open): surface the provider's reason on session failures — would have saved most of this debugging; users currently see only
Failed to open acpRegistry provider session ....
Ask
- Refresh the ACP registry index on the existing provider-update-check cadence (or at least when opening a registry-agent session finds a skew), and surface registry-agent updates in Settings → Providers. The supported recovery today (provider update/reinstall, which hits
prepare→refreshRegistry) is undiscoverable. - Include the underlying provider reason in
Provider session failed to openerrors (per fix(server): provider session failures show the provider's reason #14969).
Workaround for other readers
Settings → Providers → Factory Droid → update/reinstall, so T3 fetches the current index and installs droid@0.238.0. Verified at the protocol level; droid CLI auth itself is fine (droid doctor passes).
Metadata
Metadata
Assignees
Labels
questionFurther information is requestedFurther information is requestedvia-triageFiled through npx t3 triageFiled through npx t3 triage
Activity
joca-immersa commentedon Oct 11, 2026
Verified the workaround end-to-end: removed and re-added the Factory Droid provider in Settings → Providers. T3 fetched the current index and installed
droid@0.238.0(cache now reports 0.238.0). A delegated droid subagent (automodel) completed successfully with the expected reply. So the re-add/update flow does heal this — the remaining asks above are just about making that update discoverable/automatic and surfacing the underlying reason.juliusmarminge commentedon Oct 11, 2026
Note
Grok responding on behalf of Julius.
Closing this with the workaround you already found: Settings → Providers → Factory Droid → update/reinstall. That runs
prepare, which callsrefreshRegistry()and installs the current registry version (droid 0.238.0 today). Opening a session reads the cached index on purpose (loadRegistryis cache-first inAcpRegistrySupport.ts), and the receipt check pins the managed install to the registry version, so a manual upgrade gets replaced by design.The 0.233.0
mcpServerscrash is a Droid bug, and Factory already fixed it upstream. The other two asks are tracked elsewhere:If update/reinstall still leaves you on 0.233.0, comment here and we'll reopen.