anthropics / anthropics/claude-code

[BUG] Claude Desktop + claude.ai: Projects grid leaves stale painted fragments after scrolling

Open
#95,446 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

invalid
Dominant language
TypeScript
Stars
147k
Forks
24k
PR merge metrics
PR metrics pending

Description

Preflight Checklist
  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • I am using the latest version of Claude Code
What's Wrong?

Note: this is a Claude Desktop / claude.ai UI bug (Projects grid), not the Claude Code CLI.
It reproduces in both Claude Desktop and claude.ai in Chrome.

Scrolling down and back up in the Projects grid leaves stale rendered content painted over the
grid. Because it reproduces in both Claude Desktop and claude.ai in Chrome, this appears to be
in the Projects grid component rather than the desktop wrapper.

Stale content remains painted over the grid, in one of two forms:

  1. Stale fragments — portions of cards from rows further down the list render at the top of
    the viewport, overlapping the real first-row cards. In the desktop app the stale layer is
    horizontally misaligned with the live grid: the ghost card boxes over the first row sit
    slightly to the right of the real cards (roughly 15–45 px), while a further ghost date label
    lands in the left margin, outside the grid entirely. In the browser the ghost boxes are
    nearly aligned horizontally (at most a few px to the right) but shifted upward, so ghost
    titles and date labels sit above and over the first row. Which cards appear varies between
    attempts.
  2. Clipped top row — the topmost cards render with their upper portion cut off.

Frequency

  • Desktop app: I have not yet observed a clean scroll-down / scroll-up cycle.
  • Browser: roughly half of attempts, and streaky — several consecutive clean renders, then
    several consecutive broken ones.

The difference in rate between the two platforms, and the streakiness rather than clean
randomness, suggests a timing-sensitive interaction between scroll handling and paint.

What does NOT affect it

  • Scroll speed — no difference between slow and fast.
  • Scroll distance — partial scroll and full scroll to the bottom yield the same result. Scrolling roughly one card row plus a few pixels still reproduces it; the exact minimum has not been pinned down.
  • Gesture continuity — it occurs even within a single uninterrupted drag: press and hold the
    scrollbar thumb, drag down, drag back up, release only at the end. This rules out anything
    keyed to the end of a scroll gesture (pointerup, momentum settle, debounced re-render on idle).

Clearing conditions (desktop)
Clears on any forced repaint — alt-tab, or opening and closing another window over the app —
but never on further scrolling.

Desktop launched with --disable-gpu
The bug does not go away; it gets worse:

  • Every scroll cycle paints a different set of stale fragments.
  • Stale content appears outside the grid columns entirely — a project description fragment in
    the left margin, date labels past the last column on the right.
  • A white rectangle renders at top center. Unlike the other artifacts it survives window
    occlusion, clearing only on switching tabs within the app and back.

Software rendering reproducing it more severely, plus the browser reproduction, rules out a GPU
compositing or driver cause.

What Should Happen?

After scrolling back to the top, the grid re-renders cleanly, showing only the current cards.

Error Messages/Logs

Steps to Reproduce
  1. Open the Projects view (Claude Desktop, or claude.ai in Chrome) with enough projects that
    the grid scrolls.
  2. Scroll down. A partial scroll is enough; scrolling all the way to the bottom gives the
    same result.
  3. Scroll back up to the top.
  4. Observe stale card fragments painted over the first row, or the first row clipped at the top.

Desktop: reproduces on every attempt so far. Browser: roughly every other attempt, in streaks.
Reproducible across app restarts.

Claude Model

Not sure / Multiple models

Is this a regression?

I don't know

Last Working Version

No response

Claude Code Version

Claude Desktop 2.2553.1 (MSIX); also claude.ai in Chrome 153.0.8010.53

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Other

Additional Information

Environment

  • Claude Desktop: 2.2553.1 (MSIX package)
  • Browser: Chrome 153.0.8010.53, claude.ai/cowork/projects
  • OS: Windows 11 Pro 25H2, build 26200.9457
  • Hardware: ASUS ROG Strix GL703VD — i5-7300HQ, 16 GB RAM
  • Display adapter in use: Intel HD Graphics 630, driver 31.0.101.2140 (WDDM 3.1)
  • NVIDIA GTX 1050 present but not driving the display
  • Display: 1920x1080 @ 120Hz, 100% DPI, DWM DPI scaling disabled
  • Theme: light

Additional notes

  • Reproducible across app restarts.
  • DPI is 100% with DWM scaling disabled, so not a fractional-scaling artifact.

Screenshots
Desktop app, stale fragments (cropped / full window):
Image
Image

Desktop app, clipped top row (cropped / full window):
Image
Image

Desktop app launched with --disable-gpu (cropped / full window / persistent white rectangle):
Image
Image
Image

Browser (claude.ai in Chrome), stale fragments (full window / two cropped attempts):
Image
Image
Image

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No repository file, test, or entry point is identified, and the report states that the bug is in the Claude Desktop and claude.ai Projects grid rather than the Claude Code CLI. First reproduce the scroll-down and scroll-up sequence in the Projects view; done means the grid returns to the top without stale fragments, clipped cards, or persistent painted artifacts.

Written by the indexing model from the issue text.

Assessment

Domain
frontend
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.