[Bug]: Mobile messages return from Pending to the composer on desktop-created threads
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 23k
- Forks
- 5.9k
- Avg merge
- 11h 14m
- Merged PRs (30d)
- 357
Description
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/mobile
Steps to reproduce
- Create or start a thread from the T3 Code desktop app.
- Open that existing thread in the mobile client.
- Type a follow-up message and tap Send.
- Watch the message state in the mobile UI.
Expected behavior
The message should remain queued/pending until it is accepted, then start a turn in the existing thread.
Actual behavior
The message briefly moves into the Pending state, then leaves Pending and is restored to the composer text box. No message is sent and no turn starts.
This is distinct from #11755: in that issue the Send tap is swallowed before dispatch while the iOS editor is focused. Here the UI visibly enqueues the message into Pending before delivery rolls back and restores the draft. It is also distinct from #7390, where the Send button remains disabled while a stale native draft carries between threads.
The failure has been observed on threads opened from the desktop app. Whether the same rollback occurs for threads created entirely on mobile has not yet been confirmed.
Impact
Major degradation or frequent failure
The affected thread cannot be continued from mobile; the desktop client is required as a workaround.
Version or commit
Not collected.
Environment
T3 Code desktop and mobile clients. Mobile OS, app versions, provider, and connection mode were not collected.
Logs or stack traces
No logs collected. The visible state transition is: composer -> Pending -> composer.
Screenshots, recordings, or supporting files
None collected.
Workaround
Send the follow-up from the desktop app.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in apps/mobile by reproducing the composer → Pending → composer transition on a thread created in the desktop app. Trace the rollback after sending and compare it with the expected queued state; done means the message remains pending, is accepted, and starts a turn in the existing thread.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- mobile-dev
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100