[Bug]: Model error messages render as broken raw JSON in the UI
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/desktop
Steps to reproduce
Instead of rendering as a normal error message, it shows up in a weird broken layout, with some of the message appearing duplicated or cut off.
- Open T3 Code on Arch Linux with Qtile.
- Trigger a model-related error in the composer/chat UI.
- Observe how the error is displayed.
Expected behavior
T3 Code renders model error messages incorrectly as raw JSON / broken text instead of a readable error banner. The error text appears visually garbled and partially clipped in the UI.
A clean, readable error message should appear in the UI, with proper formatting and no raw JSON leaking into the chat/composer area.
Actual behavior
The error is shown as raw JSON-like text and appears broken/clipped, for example:
{"type":"error","status":400,"error":{"type":"invalid_request_error","message":"The 'gpt-5.3-codex' model is not supported when using Codex with a ChatGPT account."}}
This seems like a UI rendering / layout issue rather than the API error itself. The error payload is being displayed directly in the interface and the container sizing/overflow looks wrong on this setup. I attached a screenshot showing the exact rendering issue.
Impact
Cosmetic issue
Version or commit
0.0.28
Environment
Arch Linux with Qtile WM.
Screenshots, recordings, or supporting files
Workaround
No response
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/desktop and reproduce the model-related error from the composer/chat UI using the payload shown in the issue. Trace where that error is rendered and verify that the completed change displays a readable error banner without raw JSON, duplication, clipping, or broken layout.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- desktop, frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100