Tanstack Virtual freezes when using React DevTools
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 7.1k
- Forks
- 466
- Avg merge
- 2d 31m
- Merged PRs (30d)
- 13
Description
Describe the bug
Tanstack Virtual with WindowVirtualizer freezes when selecting any child of the virtualized list in the Components tab of React Devtools. Only full page refresh restores the virtualizer. The issue starts with a warning in the console: Could not find Fiber with id "2689".
Virtualization implementation can be found here:
https://github.com/Firnu/calamariassignment/blob/main/src/pages/doctors/%40components/DoctorsList.tsx
From my tests, the issue persists in other implementations as well.
Your minimal, reproducible example
https://6ee3967b.calamariassignment.pages.dev/
Steps to reproduce
- Open the provided example (make sure to have React Devtools installed).
- Open Chrome dev tools F12
- Scroll the list to confirm that Tanstack Virtual is working
- Select any item in React Devtools (Components tab) that is a child of the virtualizer.
- Scroll the list again, the items will get frozen (only last displayed items will stay visible). The console should print a warning Could not find Fiber with id "x"
Please refer to the attached video.
Expected behavior
Tanstack Virtual should continue working even when selecting items in React Devtools (Components tab). Worst case scenario, it should be able to restore itself when items related to virtualizer are deselected.
How often does this bug happen?
Every time
Screenshots or Videos
https://github.com/TanStack/virtual/assets/17776290/ba752de1-22ff-4e9f-b63c-054e2f163f97
Platform
Chrome 122.0.6261.70 (Official), Windows 11
tanstack-virtual version
3.1.2
TypeScript version
v5.3.3
Additional context
No response
Terms & Code of Conduct
- I agree to follow this project's Code of Conduct
- I understand that if my bug cannot be reliable reproduced in a debuggable environment, it will probably not be fixed and this issue may even be closed.
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 by running the linked minimal reproduction in Chrome with React DevTools installed, then inspect the virtualization implementation in src/pages/doctors/@components/DoctorsList.tsx. Select a child in the Components tab, scroll, and confirm the freeze and Fiber warning. Done means the virtualized list continues scrolling after selection and the warning no longer occurs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, typescript
- Domain
- frontend, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100