[claude.ai] Web UI Stability Issues - Lag, Freezes, Crashes
Status Open
Maintainer reply None cached
Workaround ✓ Mentioned in thread ↓
Activity 11 comments · opened Dec 16, 2025
Problem
The claude.ai web interface experiences significant stability issues that degrade the user experience, particularly for heavy users on paid plans.
Issues Observed
1. UI Lag / Slow Rendering
- Responses render slowly even on fast connections
- Typing lags behind input in long conversations (1-2 second delay)
- Switching between conversations hangs for several seconds
2. Mid-Conversation Freezes
- UI becomes completely unresponsive during conversations
- Requires waiting or force-refreshing
- More frequent in longer conversation threads
3. Complete Page Crashes
- Page dies entirely, requires full refresh
- Loses any unsent message draft
- No autosave mechanism for in-progress input
Environment
- Browser: Firefox (latest stable)
- OS: Linux
- Plan: Claude Max ($200/mo)
- Usage pattern: Heavy daily use, long conversations
Impact
- Workflow interruption during critical tasks
- Loss of carefully composed messages
- Forces users to compose externally and paste in
- Undermines confidence in the platform for important work
Proposed Solutions
- Implement draft autosave - Persist input field content locally, recover on crash/refresh
- Isolate input field rendering - Don't let conversation rendering affect input responsiveness
- Optimize long conversation handling - Virtualize message list, lazy load older messages
- Add connection state indicator - Show when connection is degraded instead of silently failing
- Implement graceful degradation - Queue messages when connection drops, send when restored
---
Alternatively, if these fixes are not feasible in the short term, update your ToS to allow subscribers to access their own sessions programmatically. This would let users build tools that work while these issues are addressed. Paying $200/mo for a product we can't reliably use, with no workaround permitted, is not acceptable.
11 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
Real-world case: 1683 messages chat
I've been experiencing severe performance issues with a long-running chat. Here's what I found:
Statistics from my problematic chat:
Observed symptoms:
perceived_ttft_ms: 34,351ms (34 sec to first token!)inp_duration_ms: 6,664-17,088ms (input delay)Root cause
After investigating, I found that the server sends ALL messages on every chat update:
React receives this and re-renders the entire tree. No virtual scrolling, no pagination — just raw DOM for every single message.
Proof of concept fix
The idea is simple: intercept the API response before React gets it and trim the message array:
Result: Instant response, smooth typing, no freezes.
This is obviously a client-side workaround. The proper fix would be incremental loading (
?after=last-uuid) and virtual scrolling — standard patterns that libraries likereact-windowsolve.---
If anyone's interested, I can share the full implementation on GitHub.
Written by Claude at user's request 🤖
Update: Compression algorithm that preserves tree structure
The key insight: sort by time, take recent messages, then fix parent links so the tree stays valid.
Results:
This runs in a browser extension intercepting
/api/.../chat_conversationresponses before they hit the React renderer.Still hoping for native fixes: message virtualization, draft persistence, input isolation from chat rendering.
If it helps, claude.ai chats (even small ones) would hang for me after a short time on Firefox 146.0.1 (installed via Flatpak) on Ubuntu 24.04.3.
After _disabling_ Enhanced Tracking Protection (ETP) just for claude.ai, seems to be fine now – will update here if the issue comes back.
Thanks. It immediately fixed lags for me. Really hope that the most _ethical_ AI company of the bunch would look into not breaking their website if tracking features are disabled.
UPD: I also had to go to
about:config, findprivacy.resistFingerprinting(I have it enabled) and either disable it completely, or add an exception for claude.ai inprivacy.resistFingerprinting.exemptedDomainsThis is an ongoing, severe issue for me -- specifically, Claude Code on the Web (regardless of whether I'm using a browser or the app) becoming suddenly completely unresponsive in the middle of critical tasks. Sometimes it recovers minutes or even HOURS later -- other times it simply never recovers at all.
The recovery makes it even MORE frustrating -- I have no idea if I'm dead in the water and should just restart my entire coding session from scratch, or wait indefinitely to see if my work can be recovered.
This has been happening since the moment the Web UI was released -- I've been using it since day one. When it works, it works beautifully, able to complete multi step workflows without ever being bothered about permissions because it runs entirely in a sandbox. But as often as not it will fail in this horrible, unpredictable way.
for me there are frequent micro freezes of like 1 second every 5 or 10 seconds. It occurs even when there are no messages yet in the conv and occurs on both of claude (regular chat) and claude design. It's been like that for at least weeks, and freezes are only occuring on claude, no other webpage is affected.
@brianjlacy @gsouf if on FF, have you tried the ETP and/or Fingerprinting workarounds mentioned above?
@kkumlien thanks for the heads up. It's on firefox indeed but the tips above didn't help unfortunately.
Sorry to hear! It has been working fine for me since. FF / OS version?
Try also in "New private window" (Ctrl+Shift+P), sometimes helps.
I was able to reproduce a specific, isolated trigger for the "mid-conversation freeze / complete unresponsiveness" symptom described above, on the
claude.aiweb app (not Claude Code CLI).Environment: Chrome (latest stable), Linux, Claude Max plan,
claude.ai/new(fresh chat, ProseMirror/Tiptap-based composer, classtiptap ProseMirror).Root cause isolated: it's not about pasted text length — it's specifically about pasting rich/formatted HTML with many small nested inline-styled elements (the kind of clipboard payload you get copying from a webpage article, WeChat/公众号 post, Word doc, or Google Doc).
Repro via a synthetic
pasteClipboardEvent dispatched on the composer's[contenteditable="true"]element (mirrors what a real OS paste delivers to the page):<span style="...">elements (~144,000 chars underlying text) → the tab's main thread hung for 45+ seconds (long enough to trip a 45s CDPRuntime.evaluatetimeout — "renderer may be frozen or unresponsive"). No console errors were thrown; it's a pure perf/rendering hang, then it eventually recovers and shows the paste collapsed into a "pasted content" attachment chip.text/htmlclipboard entry) → pasted in 536ms, no hang, no issues.This strongly suggests the bottleneck is in the paste-HTML sanitization/normalization step before it hits the editor schema (likely superlinear in the number of nodes for deeply-nested/fragmented inline-styled trees — a known perf footgun in ProseMirror-based editors when normalizing messy pasted DOM).
Workaround for users hitting this: paste as plain text (
Ctrl+Shift+V/ "paste without formatting") instead of a normal paste, or paste into a plain-text editor first and copy from there.Suggested fix directions:
Happy to share the exact JS repro snippet if useful for a regression test.