Another form of the same ID mismatch, on 0.0.46 nightly (Linux), seen 2026-10-14 and reproduced today: agent-created threads have server-minted IDs mcp:<uuid>, and the bare <uuid> misses.
t3_thread_read({threadId: "<uuid>"})on an agent-created thread →{"code":"thread_not_found","message":"Thread <uuid> is no longer available."}t3_thread_read({threadId: "mcp:<uuid>"})→ OK.- The reverse also holds for a user-created thread: bare
<uuid>→ OK,mcp:<uuid>→thread_not_found. t3_thread_sendbehaves the same way.
How agents get the bare form: coordinators are often user-created threads with bare IDs, and agents carry that form over to agent-created peers. Native subagents add a third form, thread:provider:….
Impact. The "no longer available" wording led two separate agents to conclude that the peer thread or its owner had been deleted. Both then needed another thread to relay the correct ID.
Request. On an exact miss, either resolve the ID when it matches exactly one live thread's UUID suffix, or return an error that says the thread could not be found under this ID form, rather than "no longer available". The misleading wording is the larger problem.