This issue has been created
There are 2 updates.
 
 
XWiki Platform / cid:jira-generated-image-avatar-83dfeb79-08ff-4ec1-9d7d-43f8847c51c0 XWIKI-25435 Open

Changes made while disconnected from a BlockNote realtime editing session are lost when reconnecting

 
View issue   ยท   Add comment
 

Issue created

 
cid:jira-generated-image-avatar-539104e6-255f-45b3-8351-9bf32ca79a47 Marius Dumitru Florea created this issue on 21/Oct/26 14:09
 
Summary: Changes made while disconnected from a BlockNote realtime editing session are lost when reconnecting
Issue Type: cid:jira-generated-image-avatar-83dfeb79-08ff-4ec1-9d7d-43f8847c51c0 Bug
Affects Versions: 18.4.0
Assignee: Unassigned
Components: BlockNote
Created: 21/Oct/26 14:09
Priority: cid:jira-generated-image-static-major-d4bc4df5-e01e-48d2-93f8-b450de3df9fd Major
Reporter: Marius Dumitru Florea
Description:

Steps to reproduce

  1. Open the same page with the BlockNote editor in two browsers, so that they join the same realtime editing session.
  2. In the first browser, lose the connection (e.g. go offline from the browser developer tools).
  3. Still in the first browser, insert and delete some text.
  4. Restore the connection.

Expected

The changes made while disconnected are synchronized with the second browser (and with the users that join the session later) once the first browser reconnects.

Actual

The changes made while disconnected are never sent. The two editors show different content, and the changes the first user makes afterwards may not show up in the second editor either, because they depend on the content that was never sent.

The same happens with the changes made right before the connection loss is detected (up to 30 seconds), which are sent into a connection that is already lost.

Cause

On (re)connect, the Yjs WebSocket provider sends only a sync step 1 and relies on the server to send its own sync step 1, asking for the updates it misses. The XWiki Yjs WebSocket endpoint doesn't hold a Yjs document, only the updates it received, so it replays them but never asks for the missing ones.

Room replaced while disconnected

If all the other users leave while a user is disconnected, the room is discarded. If someone then starts a new session from the saved page, the reconnecting user's document doesn't share any history with the new session: merging them would duplicate the whole content. In this case the editor should stop synchronizing, keep the local changes and tell the user, instead of corrupting the content.

 
 

2 updates

 
cid:jira-generated-image-avatar-539104e6-255f-45b3-8351-9bf32ca79a47 Changes by Marius Dumitru Florea on 21/Oct/26 14:09
 
Fix Version: 18.9.0
Assignee: Marius Dumitru Florea