There are 6 updates, 2 comments.
 
 
XWiki Platform / cid:jira-generated-image-avatar-26055bf5-f729-4ebb-98ab-ce5cd6833b6e XWIKI-23436 Open

You can't edit a wiki page in WYSIWYG mode if you can't connect to the realtime session

 
View issue   ยท   Add comment
 

6 updates

 
cid:jira-generated-image-avatar-dc2d6587-9c18-446a-9f73-95b0ddf90032 Changes by Marius Dumitru Florea on 05/Aug/25 14:11
 
Fix Version: 17.7.0-rc-1
Fix Version: 16.10.11
Fix Version: 17.4.4
Development Priority: High
Assignee: Marius Dumitru Florea
Priority: Major Critical
 
 

2 comments

 
cid:jira-generated-image-avatar-dc2d6587-9c18-446a-9f73-95b0ddf90032 Marius Dumitru Florea on 05/Aug/25 14:11
 

This is a regression introduced by XWIKI-23233.

Before:

  • We were showing the old edit mode toolbar right away.
  • The realtime WYSIWYG editor plugin was trying (repeatedly, in the background) to connect to the realtime session.
  • The user could edit and save.

After:

  • We hide the old edit mode toolbar right away, in order to avoid the UI flickering described in XWIKI-23233
  • We wait for the edit mode to be ready before showing the new toolbar.
  • The edit mode is ready after we connect to the realtime session; if the connection can't be established we try again, and again, keeping the edit mode in loading state, so the user can't edit or save.

The problem is that:

  • the connection / retry fails if the WebSocket (upgrade) request is blocked or forbidden, for instance, but that's not what happens in practice, e.g. when you have an HTTP proxy in front of XWiki that is not properly configured: in this case the browser appears to quickly connect and disconnect from the WebSocket end-point. This makes the ``netflux-client`` JavaScript library we use to communicate with the Netflux WebSocket end-point to try again and again..
 
cid:jira-generated-image-avatar-dc2d6587-9c18-446a-9f73-95b0ddf90032 Marius Dumitru Florea on 05/Aug/25 14:12
 
This is a regression introduced by XWIKI-23233.

*Before*:

* We were showing the old edit mode toolbar right away.
* The realtime WYSIWYG editor plugin was trying (repeatedly, in the background) to connect to the realtime session.
* The user could edit and save.

*After*:

* We *hide* the old edit mode toolbar right away, in order to avoid the UI flickering described in XWIKI-23233
* We wait for the edit mode to be ready before showing the new toolbar.
* The edit mode is ready after we connect to the realtime session; if the connection can't be established we try again, and again, keeping the edit mode in loading state, so the user can't edit or save.

The problem is that:
* the connection / retry fails if the WebSocket (upgrade) request is blocked or forbidden, for instance, but that's not what happens in practice, e.g. when you have an HTTP proxy in front of XWiki that is not properly configured: in this case the browser appears to quickly connect and disconnect from the WebSocket end-point. This makes the
`` {{ netflux-client `` }} JavaScript library we use to communicate with the Netflux WebSocket end-point to try again and again..
*  {{netflux-client}} library has no timeout or max retries configuration, so it tries to connect indefinitely