[GH-ISSUE #23990] issue: Scrolling up jumps around in a conversation/chat #58812

Closed
opened 2026-05-06 00:11:45 -05:00 by GiteaMirror · 27 comments
Owner

Originally created by @FrameXX on GitHub (Apr 22, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/23990

Check Existing Issues

  • I have searched for any existing and/or related issues.
  • I have searched for any existing and/or related discussions.
  • I have also searched in the CLOSED issues AND CLOSED discussions and found no related items (your issue might already be addressed on the development branch!).
  • I am using the latest version of Open WebUI.

Installation Method

Docker

Open WebUI Version

v0.9.1

Ollama Version (if applicable)

No response

Operating System

Fedora Linux 43

Browser (if applicable)

Zen (Firefox 149.0.2)

Confirmation

  • I have read and followed all instructions in README.md.
  • I am using the latest version of both Open WebUI and Ollama.
  • I have included the browser console logs.
  • I have included the Docker container logs.
  • I have provided every relevant configuration, setting, and environment variable used in my setup.
  • I have clearly listed every relevant configuration, custom setting, environment variable, and command-line option that influences my setup (such as Docker Compose overrides, .env values, browser settings, authentication configurations, etc).
  • I have documented step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation. My steps:
  • Start with the initial platform/version/OS and dependencies used,
  • Specify exact install/launch/configure commands,
  • List URLs visited, user input (incl. example values/emails/passwords if needed),
  • Describe all options and toggles enabled or changed,
  • Include any files or environmental changes,
  • Identify the expected and actual result at each stage,
  • Ensure any reasonably skilled user can follow and hit the same issue.

Expected Behavior

I should be able to scroll without the conversation/chat jumping around.

Actual Behavior

When scrolling up in a conversation/chat it jumps back and forth usually around my queries/questions/messages.

Steps to Reproduce

Open a conversation/chat in Firefox or specifically Zen and try to scroll up. I am scrolling using a notebook touchpad. I am unable to reproduce it in a Chromium browser and this also didn't happen to me with the previous OpenWebUI version.

Logs & Screenshots

https://github.com/user-attachments/assets/31fc788c-2cc9-4bd0-b0ff-8a88b789a19b

Additional Information

These errors show in the browser console upon loading a conversation and might be relevant:

This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning; see https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html for further details and to join the discussion on related tools and features! 04c1ec0b-b005-44f5-abf9-44ecea4a4ac9

Scroll anchoring was disabled in a scroll container because of too many consecutive adjustments (17) with too little total distance (1.41176470588235 px average, 24 px total). index.js:7850:54

I have also noticed that while scrolling up does not jump in Chromium it seems to get bit laggy around my queries.

Originally created by @FrameXX on GitHub (Apr 22, 2026). Original GitHub issue: https://github.com/open-webui/open-webui/issues/23990 ### Check Existing Issues - [x] I have searched for any existing and/or related issues. - [x] I have searched for any existing and/or related discussions. - [x] I have also searched in the CLOSED issues AND CLOSED discussions and found no related items (your issue might already be addressed on the development branch!). - [x] I am using the latest version of Open WebUI. ### Installation Method Docker ### Open WebUI Version v0.9.1 ### Ollama Version (if applicable) _No response_ ### Operating System Fedora Linux 43 ### Browser (if applicable) Zen (Firefox 149.0.2) ### Confirmation - [x] I have read and followed all instructions in `README.md`. - [x] I am using the latest version of **both** Open WebUI and Ollama. - [x] I have included the browser console logs. - [x] I have included the Docker container logs. - [x] I have **provided every relevant configuration, setting, and environment variable used in my setup.** - [x] I have clearly **listed every relevant configuration, custom setting, environment variable, and command-line option that influences my setup** (such as Docker Compose overrides, .env values, browser settings, authentication configurations, etc). - [x] I have documented **step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation**. My steps: - Start with the initial platform/version/OS and dependencies used, - Specify exact install/launch/configure commands, - List URLs visited, user input (incl. example values/emails/passwords if needed), - Describe all options and toggles enabled or changed, - Include any files or environmental changes, - Identify the expected and actual result at each stage, - Ensure any reasonably skilled user can follow and hit the same issue. ### Expected Behavior I should be able to scroll without the conversation/chat jumping around. ### Actual Behavior When scrolling up in a conversation/chat it jumps back and forth usually around my queries/questions/messages. ### Steps to Reproduce Open a conversation/chat in Firefox or specifically Zen and try to scroll up. I am scrolling using a notebook touchpad. I am unable to reproduce it in a Chromium browser and this also didn't happen to me with the previous OpenWebUI version. ### Logs & Screenshots https://github.com/user-attachments/assets/31fc788c-2cc9-4bd0-b0ff-8a88b789a19b ### Additional Information These errors show in the browser console upon loading a conversation and might be relevant: > This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning; see https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html for further details and to join the discussion on related tools and features! 04c1ec0b-b005-44f5-abf9-44ecea4a4ac9 > Scroll anchoring was disabled in a scroll container because of too many consecutive adjustments (17) with too little total distance (1.41176470588235 px average, 24 px total). index.js:7850:54 I have also noticed that while scrolling up does not jump in Chromium it seems to get bit laggy around my queries.
GiteaMirror added the bug label 2026-05-06 00:11:46 -05:00
Author
Owner

@DerKay3 commented on GitHub (Apr 22, 2026):

I’m experiencing the same bug.
Happens on Safari and Chrome as well.
Running Open WebUI v0.9.1.

<!-- gh-comment-id:4295230897 --> @DerKay3 commented on GitHub (Apr 22, 2026): I’m experiencing the same bug. Happens on Safari and Chrome as well. Running Open WebUI v0.9.1.
Author
Owner

@diminDDL commented on GitHub (Apr 22, 2026):

I am experiencing the same bug under Firefox 149.0.2 as well, it works fine when scrolling from top to bottom, but going bottom to to is full of jumps and is almost impossible to navigate.

The Firefox console also throws:
Scroll anchoring was disabled in a scroll container because of too many consecutive adjustments (12) with too little total distance (0 px average, 0 px total). ada78052-a92c-4adc-ae28-dcf46facd431
and also sometimes:
This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning; see https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html for further details and to join the discussion on related tools and features! ada78052-a92c-4adc-ae28-dcf46facd431

<!-- gh-comment-id:4295634997 --> @diminDDL commented on GitHub (Apr 22, 2026): I am experiencing the same bug under Firefox 149.0.2 as well, it works fine when scrolling from top to bottom, but going bottom to to is full of jumps and is almost impossible to navigate. The Firefox console also throws: `Scroll anchoring was disabled in a scroll container because of too many consecutive adjustments (12) with too little total distance (0 px average, 0 px total). ada78052-a92c-4adc-ae28-dcf46facd431` and also sometimes: `This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning; see https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html for further details and to join the discussion on related tools and features! ada78052-a92c-4adc-ae28-dcf46facd431`
Author
Owner

@intdel commented on GitHub (Apr 22, 2026):

Yes I have the same problem with Android Chrome 147.0

<!-- gh-comment-id:4297375400 --> @intdel commented on GitHub (Apr 22, 2026): Yes I have the same problem with Android Chrome 147.0
Author
Owner

@Fade78 commented on GitHub (Apr 22, 2026):

Same problem on Firefox on Android and Linux.

<!-- gh-comment-id:4297847174 --> @Fade78 commented on GitHub (Apr 22, 2026): Same problem on Firefox on Android and Linux.
Author
Owner

@d1ffuser commented on GitHub (Apr 22, 2026):

Confirmed on Firefox and Bave.

Duplicate: https://github.com/open-webui/open-webui/discussions/23993

<!-- gh-comment-id:4298013548 --> @d1ffuser commented on GitHub (Apr 22, 2026): Confirmed on Firefox and Bave. Duplicate: https://github.com/open-webui/open-webui/discussions/23993
Author
Owner

@mysteryx93 commented on GitHub (Apr 22, 2026):

This is definitely a regression. The major new feature is that now it creates and displays tasks with steps (and isn't even completing all the steps it displays). So this is a partially-working feature; and I'm pretty sure that's what also breaks the scrolling.

<!-- gh-comment-id:4298122435 --> @mysteryx93 commented on GitHub (Apr 22, 2026): This is definitely a regression. The major new feature is that now it creates and displays tasks with steps (and isn't even completing all the steps it displays). So this is a partially-working feature; and I'm pretty sure that's what also breaks the scrolling.
Author
Owner

@Silvenga commented on GitHub (Apr 22, 2026):

Looks related to lazy loading/virtual dom - scrollbar jumps around too. It's almost like it's trying to remove elements from the dom within the same message (the whole message can't be displayed).

Changing the windows size mitigates it, until a different sized message is seen.

Firefox on Windows if that matters.

<!-- gh-comment-id:4299087147 --> @Silvenga commented on GitHub (Apr 22, 2026): Looks related to lazy loading/virtual dom - scrollbar jumps around too. It's almost like it's trying to remove elements from the dom within the same message (the whole message can't be displayed). Changing the windows size mitigates it, until a different sized message is seen. Firefox on Windows if that matters.
Author
Owner

@Mersid commented on GitHub (Apr 22, 2026):

Confirm this happens on both Firefox and Safari (iOS). Excellent update, still!

<!-- gh-comment-id:4299311189 --> @Mersid commented on GitHub (Apr 22, 2026): Confirm this happens on both Firefox and Safari (iOS). Excellent update, still!
Author
Owner

@jxingnet commented on GitHub (Apr 23, 2026):

Same problem on chrome/egde/safari. v0.9.1.

<!-- gh-comment-id:4301803693 --> @jxingnet commented on GitHub (Apr 23, 2026): Same problem on chrome/egde/safari. v0.9.1.
Author
Owner

@gmtrnv commented on GitHub (Apr 23, 2026):

Same problem in Chrome

<!-- gh-comment-id:4301833067 --> @gmtrnv commented on GitHub (Apr 23, 2026): Same problem in Chrome
Author
Owner

@divemasterza commented on GitHub (Apr 23, 2026):

Same -> Chrome 147.0.7727.56 (Official Build) (arm64)

<!-- gh-comment-id:4302580446 --> @divemasterza commented on GitHub (Apr 23, 2026): Same -> Chrome 147.0.7727.56 (Official Build) (arm64)
Author
Owner

@Podden commented on GitHub (Apr 23, 2026):

Seems to be related to lazy loading the start and the end of the conversation and the different lenght of messages. Scrollbar is getting smaller and longer as well. Happens on Firefox, Chrome, Edge, WIndows, CachyOS... on mobile and PWA as well

<!-- gh-comment-id:4302934066 --> @Podden commented on GitHub (Apr 23, 2026): Seems to be related to lazy loading the start and the end of the conversation and the different lenght of messages. Scrollbar is getting smaller and longer as well. Happens on Firefox, Chrome, Edge, WIndows, CachyOS... on mobile and PWA as well
Author
Owner

@EuPhobos commented on GitHub (Apr 23, 2026):

Oh.. this is really annoying..

<!-- gh-comment-id:4305661342 --> @EuPhobos commented on GitHub (Apr 23, 2026): Oh.. this is really annoying..
Author
Owner

@RabiHikari commented on GitHub (Apr 23, 2026):

Same issue on my Firefox. However, my Chrome behaves a bit differently: when idle, sometimes the text glitches slightly up and down. Once scrolling, the page doesn't jump around but becomes stuttery and laggy, with the degree of lag fluctuating randomly. Seems only occur with long contexts.

<!-- gh-comment-id:4306234761 --> @RabiHikari commented on GitHub (Apr 23, 2026): Same issue on my Firefox. However, my Chrome behaves a bit differently: when idle, sometimes the text glitches slightly up and down. Once scrolling, the page doesn't jump around but becomes stuttery and laggy, with the degree of lag fluctuating randomly. Seems only occur with long contexts.
Author
Owner

@vrelk commented on GitHub (Apr 23, 2026):

Experiencing the same thing in Firefox, except it is MUCH worse than the example video when you have long messages with things like code blocks in them as it will skip entire messages.

<!-- gh-comment-id:4306984885 --> @vrelk commented on GitHub (Apr 23, 2026): Experiencing the same thing in Firefox, except it is **MUCH** worse than the example video when you have long messages with things like code blocks in them as it will skip entire messages.
Author
Owner

@idealclover commented on GitHub (Apr 24, 2026):

Same here on Edge

<!-- gh-comment-id:4311084607 --> @idealclover commented on GitHub (Apr 24, 2026): Same here on Edge
Author
Owner

@morbificagent commented on GitHub (Apr 24, 2026):

Yes its unuseable at the moment.

<!-- gh-comment-id:4311151800 --> @morbificagent commented on GitHub (Apr 24, 2026): Yes its unuseable at the moment.
Author
Owner

@bazzspeed commented on GitHub (Apr 24, 2026):

This is my experience:

  • A long thread, comparing two models.
  • Scroll to the top, no problem
  • Then start scrolling down, and it dynamically reloads a lot of messages and returns you to the top.
  • I can't actually scroll down past the first screen of content.

Weird.

<!-- gh-comment-id:4311319420 --> @bazzspeed commented on GitHub (Apr 24, 2026): This is my experience: - A long thread, comparing two models. - Scroll to the top, no problem - Then start scrolling down, and it dynamically reloads a lot of messages and returns you to the top. - I can't actually scroll down past the first screen of content. Weird.
Author
Owner

@D3bu9m4n commented on GitHub (Apr 24, 2026):

same issue

<!-- gh-comment-id:4312086185 --> @D3bu9m4n commented on GitHub (Apr 24, 2026): same issue
Author
Owner

@tjbck commented on GitHub (Apr 24, 2026):

Addressed with the latest release.

<!-- gh-comment-id:4312302459 --> @tjbck commented on GitHub (Apr 24, 2026): Addressed with the latest release.
Author
Owner

@FrameXX commented on GitHub (Apr 24, 2026):

@tjbck

I don't think the issue went away completely. Now it only happens at the very top of a chat on first load. How to reproduce:

  • Use latest Firefox.
  • Open chat with enough messages to scroll.
  • Reload the page just to make sure we are fresh.
  • Scroll to the very top.

2 screencasts:

https://github.com/user-attachments/assets/7b82337a-3588-426a-9700-468c15f4b95d

https://github.com/user-attachments/assets/24cacd1a-bdab-46b3-8e3e-bfc511acda42

There's the issue:

Image

Also when I open or reload a chat I get spawned in the middle of the chat. I am not sure whether that's an expected behavior.

Don't read the chat please. I am braindead.

<!-- gh-comment-id:4314689029 --> @FrameXX commented on GitHub (Apr 24, 2026): @tjbck I don't think the issue went away completely. Now it only happens at the very top of a chat on first load. How to reproduce: - Use latest Firefox. - Open chat with enough messages to scroll. - Reload the page just to make sure we are fresh. - Scroll to the very top. 2 screencasts: https://github.com/user-attachments/assets/7b82337a-3588-426a-9700-468c15f4b95d https://github.com/user-attachments/assets/24cacd1a-bdab-46b3-8e3e-bfc511acda42 There's the issue: <img width="1253" height="278" alt="Image" src="https://github.com/user-attachments/assets/1c4dae9a-7ab5-42b1-83cc-58f0d5049fab" /> --- Also when I open or reload a chat I get spawned in the middle of the chat. I am not sure whether that's an expected behavior. Don't read the chat please. I am braindead.
Author
Owner

@d1ffuser commented on GitHub (Apr 24, 2026):

@FrameXX Unable to reproduce on the latest version.

Firefox 150.0 mac.

<!-- gh-comment-id:4315772966 --> @d1ffuser commented on GitHub (Apr 24, 2026): @FrameXX Unable to reproduce on the latest version. Firefox 150.0 mac.
Author
Owner

@FrameXX commented on GitHub (Apr 24, 2026):

I tried in freshly installed Librewolf with no extensions. I am still able to reproduce it.

https://github.com/user-attachments/assets/39ff3a54-7bbd-4588-982d-40e94e990469

<!-- gh-comment-id:4315866444 --> @FrameXX commented on GitHub (Apr 24, 2026): I tried in freshly installed Librewolf with no extensions. I am still able to reproduce it. https://github.com/user-attachments/assets/39ff3a54-7bbd-4588-982d-40e94e990469
Author
Owner

@TotoShampoin commented on GitHub (Apr 25, 2026):

Experiencing this too. It's incredibly annoying

<!-- gh-comment-id:4319559656 --> @TotoShampoin commented on GitHub (Apr 25, 2026): Experiencing this too. It's incredibly annoying
Author
Owner

@FrameXX commented on GitHub (Apr 25, 2026):

You might not actually need to scroll to the top. It's enough to just scroll to the area that isn't loaded yet.

<!-- gh-comment-id:4319562485 --> @FrameXX commented on GitHub (Apr 25, 2026): You might not actually need to scroll to the top. It's enough to just scroll to the area that isn't loaded yet.
Author
Owner

@PuzzleHeaded555 commented on GitHub (Apr 29, 2026):

I'm still having the issue after updating to v0.9.2. It doesn't seem to just be viewing it. Also downloading is all messed up. The text file and the JSON download just repeat themselves a thousand times. PDF just doesn't really export anything as you can see in the screenshot. I also just develeoped a tool for my Unraid server to be able to export the chats to JSON and MD files and it seems to turncate the output around the area that the repeating happens in the browser. Also, scrollbar just didn't show up on any browser except for firefox.

Image

Tested on Mac: Chrome, Vivaldi, Safari, and Firefox.
Tested on Windows: Vivaldi.

<!-- gh-comment-id:4340262288 --> @PuzzleHeaded555 commented on GitHub (Apr 29, 2026): I'm still having the issue after updating to v0.9.2. It doesn't seem to just be viewing it. Also downloading is all messed up. The text file and the JSON download just repeat themselves a thousand times. PDF just doesn't really export anything as you can see in the screenshot. I also just develeoped a tool for my Unraid server to be able to export the chats to JSON and MD files and it seems to turncate the output around the area that the repeating happens in the browser. Also, scrollbar just didn't show up on any browser except for firefox. <img width="2538" height="3082" alt="Image" src="https://github.com/user-attachments/assets/22660900-ce05-4755-b7cc-1f59c26a383e" /> Tested on Mac: Chrome, Vivaldi, Safari, and Firefox. Tested on Windows: Vivaldi.
Author
Owner

@savantskie commented on GitHub (May 2, 2026):

I think I fixed it, i'm testing it right now, I used AI the help me diagnose it by looking at 0.8.2 and comparing to 0.9.0 yes most of this is written by AI

I run Open WebUI on bare metal (not Docker) for my personal AI assistant and I was having the same scrolling problem everyone else has been reporting since 0.9.0. When a model is streaming a response, the scroll position jumps around randomly. Sometimes it snaps to the bottom while you're trying to read, sometimes it bounces back and forth for a few seconds. On Firefox it's especially bad and you get scroll anchoring errors in the console. Brave and Safari do it too from what I can see in the GitHub reports.

I had my AI coding assistant (Eddie, but really it doesn't matter which one) compare the code between 0.8.2 and 0.9.0. Two things changed that caused this. The first was that scrollToBottom was changed to use requestAnimationFrame batching to avoid too many layout reflows during streaming. The second was that they added virtual scrolling to the message list (only rendering messages near the viewport and using spacer divs for the rest). Both were done to improve performance with long chats, but they fight each other during streaming. The spacer calculations from the virtual scrolling change while content is still being written to the DOM because each streaming token changes the height of the message being rendered, which changes the spacer size, which changes the total scroll height, which causes scroll anchoring to freak out.

The fix was three things in two files inside src/lib/components/chat.

One, I added contain: layout as a CSS style on the messages container div. This tells the browser to isolate that container's layout from the rest of the page and stops Firefox from complaining about scroll anchoring.

Two, I made the virtual scrolling system aware of when the model is actually generating a response. Open WebUI already has a boolean called generating that tracks this, it just wasn't being passed to the Messages component. During streaming, the virtual scroller now shows all messages and uses zero-height spacers. The message heights still get measured and cached in the background so the data is ready for later, but the spacers can't fight with the streaming content because they are not there.

Three, when the model finishes generating, the virtual scroller waits one animation frame and then re-calculates the visible range normally using the now-stable heights. This means off-screen messages still get unloaded in long chats, just not while the model is still writing.

If you scroll up while the model is still writing, it stays where you left it. When the model finishes, the scroll position does not snap to the bottom unless you were already at the bottom. This is the same autoScroll behavior that already existed, it just wasnt working properly because the virtual scroll spacers were overriding it during streaming.

I do not know Svelte. I told the AI what the problem felt like from a user perspective, it compared the two versions, found the root cause, and walked me through the fix. The code changes are four guards and a CSS property spread across two files, about 15 lines total. If you want to fix it yourself, look at Chat.svelte around line 2908 for the contain: layout change and around line 2938 for the generating prop, then look at Messages.svelte lines 57, 98-106, 139, and 261-275 for the virtual scroll guards.

If Open WebUI ships an actual fix for this, I will probably just revert mine and take theirs. But for now this works on my instance.

[EDIT] I just tested it, and the bouncing is still there, but it's not nearly as jarring. So i've partially solved it.

<!-- gh-comment-id:4362900657 --> @savantskie commented on GitHub (May 2, 2026): I think I fixed it, i'm testing it right now, I used AI the help me diagnose it by looking at 0.8.2 and comparing to 0.9.0 yes most of this is written by AI I run Open WebUI on bare metal (not Docker) for my personal AI assistant and I was having the same scrolling problem everyone else has been reporting since 0.9.0. When a model is streaming a response, the scroll position jumps around randomly. Sometimes it snaps to the bottom while you're trying to read, sometimes it bounces back and forth for a few seconds. On Firefox it's especially bad and you get scroll anchoring errors in the console. Brave and Safari do it too from what I can see in the GitHub reports. I had my AI coding assistant (Eddie, but really it doesn't matter which one) compare the code between 0.8.2 and 0.9.0. Two things changed that caused this. The first was that scrollToBottom was changed to use requestAnimationFrame batching to avoid too many layout reflows during streaming. The second was that they added virtual scrolling to the message list (only rendering messages near the viewport and using spacer divs for the rest). Both were done to improve performance with long chats, but they fight each other during streaming. The spacer calculations from the virtual scrolling change while content is still being written to the DOM because each streaming token changes the height of the message being rendered, which changes the spacer size, which changes the total scroll height, which causes scroll anchoring to freak out. The fix was three things in two files inside src/lib/components/chat. One, I added contain: layout as a CSS style on the messages container div. This tells the browser to isolate that container's layout from the rest of the page and stops Firefox from complaining about scroll anchoring. Two, I made the virtual scrolling system aware of when the model is actually generating a response. Open WebUI already has a boolean called generating that tracks this, it just wasn't being passed to the Messages component. During streaming, the virtual scroller now shows all messages and uses zero-height spacers. The message heights still get measured and cached in the background so the data is ready for later, but the spacers can't fight with the streaming content because they are not there. Three, when the model finishes generating, the virtual scroller waits one animation frame and then re-calculates the visible range normally using the now-stable heights. This means off-screen messages still get unloaded in long chats, just not while the model is still writing. If you scroll up while the model is still writing, it stays where you left it. When the model finishes, the scroll position does not snap to the bottom unless you were already at the bottom. This is the same autoScroll behavior that already existed, it just wasnt working properly because the virtual scroll spacers were overriding it during streaming. I do not know Svelte. I told the AI what the problem felt like from a user perspective, it compared the two versions, found the root cause, and walked me through the fix. The code changes are four guards and a CSS property spread across two files, about 15 lines total. If you want to fix it yourself, look at Chat.svelte around line 2908 for the contain: layout change and around line 2938 for the generating prop, then look at Messages.svelte lines 57, 98-106, 139, and 261-275 for the virtual scroll guards. If Open WebUI ships an actual fix for this, I will probably just revert mine and take theirs. But for now this works on my instance. [EDIT] I just tested it, and the bouncing is still there, but it's not nearly as jarring. So i've partially solved it.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#58812