Skip to content

Real-time collaboration: Improve disconnect dialog#75970

Merged
chriszarate merged 8 commits intoWordPress:trunkfrom
Automattic:improve/rtc-disconnect-dialog
Mar 3, 2026
Merged

Real-time collaboration: Improve disconnect dialog#75970
chriszarate merged 8 commits intoWordPress:trunkfrom
Automattic:improve/rtc-disconnect-dialog

Conversation

@alecgeatches
Copy link
Copy Markdown
Contributor

@alecgeatches alecgeatches commented Feb 26, 2026

What?

Closes #75877
Closes: #75803.

Add a countdown and "Retry now" button to the real-time collaboration disconnection dialog:

image

Why?

When a user experiences a disconnection, it's unclear that in the background retries are happening. Expose this information, and also provide a button to immediately try a reconnect.

How?

Added the ConnectionStatusDisconnected type which allows the transport to send a retryInMs along with the existing connectionError indicating when the dialog will re-poll. We also expose a private API from the sync package to re-initiate a request. Note that we shouldn't pass the callback to retry along with ConnectionStatusDisconnected types, because these values are transmitted via core data store (getSyncConnectionStatus/setSyncConnectionStatus) and we want to avoid non-serializable data in there.

Testing Instructions

I tested disconnections via a mounted file with wp-env. To do that:

  1. Add a file in the root of the gutenberg repository called debug-sync-error.php with these contents:

    <?php
    define( 'FORCE_SYNC_ERROR', false );
    
    add_filter( 'rest_pre_dispatch', function ( $result, $server, $request ) {
        if ( FORCE_SYNC_ERROR && '/wp-sync/v1/updates' === $request->get_route() ) {
            return new WP_Error(
                'rest_sync_unknown_error',
                'An unknown error occurred while processing the sync request.',
                array( 'status' => 500 )
            );
        }
        return $result;
    }, 10, 3 );
  2. Mount it via .wp-env.json in the mappings top-level property:

    {
        /* ... */
        "mappings": {
            "wp-content/mu-plugins/debug-sync-error.php": "./debug-sync-error.php"
        },
    }
  3. Restart wp-env via npm run wp-env stop && npm run wp-env start

  4. Open a post and view the network panel. Then, open debug-sync-error.php and change FORCE_SYNC_ERROR to true. After a short delay, you should see network requests to /wp-sync/v1/updates fail with a 500 error and the dialog will appear afterwards.

  5. Ensure the countdown works and corresponds with a network request, as well as the "Retry now" button creates a request.

  6. Turn FORCE_SYNC_ERROR to false again during a countdown and ensure "Retry now" resumes editing of the post.

Alternatively, these console commands can be used to show and hide the dialog directly. Note that these dialogs don't actually retry attempts since the connection is still valid, they're just for viewing the UI:

// Show 'disconnected' dialog with unknown errer
wp.data.dispatch('core').setSyncConnectionStatus('postType','post',1,{status:'disconnected',retryInMs:30000,error:{code:'unknown-error'}});

// Remove dialog
wp.data.dispatch('core').setSyncConnectionStatus('postType','post',1,{status:'connected'});

@alecgeatches alecgeatches self-assigned this Feb 26, 2026
@alecgeatches alecgeatches requested a review from nerrad as a code owner February 26, 2026 17:42
@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 26, 2026

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: alecgeatches <[email protected]>
Co-authored-by: dabowman <[email protected]>
Co-authored-by: Mamaduka <[email protected]>
Co-authored-by: talldan <[email protected]>
Co-authored-by: timiwahalahti <[email protected]>
Co-authored-by: smithjw1 <[email protected]>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@github-actions github-actions bot added [Package] Core data /packages/core-data [Package] Editor /packages/editor [Package] Sync labels Feb 26, 2026
@alecgeatches alecgeatches added [Feature] Real-time Collaboration Phase 3 of the Gutenberg roadmap around real-time collaboration [Type] Task Issues or PRs that have been broken down into an individual action to take labels Feb 26, 2026
alecgeatches and others added 2 commits February 26, 2026 11:50
Redesign the sync disconnection modal to follow the standard Modal
pattern with a header title, left-aligned body, and right-aligned
footer buttons — replacing the previous centered splash layout.

- Use Modal `title` prop instead of hidden header with large icon
- Add "Back to {PostType}" button with dynamic post type label
- Add manual "Retry" button alongside auto-retry countdown
- Promote "Copy Post Content" to primary when Retry is hidden
- Add `canRetry` flag to error messages: `authentication-failed`
  hides Retry (permissions can't be resolved by retrying)
- Stabilize useEffect dependencies with primitive values
- Replace hardcoded colors with `@wordpress/base-styles` tokens
- Add unit tests for `getSyncErrorMessages`

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@dabowman dabowman force-pushed the improve/rtc-disconnect-dialog branch from 2bdf97b to 12144bf Compare February 26, 2026 21:13
@dabowman
Copy link
Copy Markdown
Contributor

Pushed up new designs for the modal. I did some copy editing and brought it in line with the other modals in the editor.

image

description: __(
'Authentication with the collaborative editing server failed. ' +
'Please verify that you have the necessary permissions.'
"Real-time collaboration couldn't verify your permissions. " +
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! Love that this change was made.

@ingeniumed ingeniumed added the Backport to WP 7.0 Beta/RC Pull request that needs to be backported to the WordPress major release that's currently in beta label Mar 3, 2026
Copy link
Copy Markdown
Contributor

@chriszarate chriszarate left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So much better!

@chriszarate chriszarate merged commit 832f4b4 into WordPress:trunk Mar 3, 2026
46 of 47 checks passed
@chriszarate chriszarate deleted the improve/rtc-disconnect-dialog branch March 3, 2026 01:59
@github-actions github-actions bot added this to the Gutenberg 22.7 milestone Mar 3, 2026
@github-actions github-actions bot removed the Backport to WP 7.0 Beta/RC Pull request that needs to be backported to the WordPress major release that's currently in beta label Mar 3, 2026
gutenbergplugin pushed a commit that referenced this pull request Mar 3, 2026
* Show reconnect countdown in "Disconnected" dialog

* Add "Retry now" link on disconnect dialog, expose reconnect through sync private APIs

* Move retry countdown logic into separate hook file

* Sync connection modal: Redesign with error-specific actions

Redesign the sync disconnection modal to follow the standard Modal
pattern with a header title, left-aligned body, and right-aligned
footer buttons — replacing the previous centered splash layout.

- Use Modal `title` prop instead of hidden header with large icon
- Add "Back to {PostType}" button with dynamic post type label
- Add manual "Retry" button alongside auto-retry countdown
- Promote "Copy Post Content" to primary when Retry is hidden
- Add `canRetry` flag to error messages: `authentication-failed`
  hides Retry (permissions can't be resolved by retrying)
- Stabilize useEffect dependencies with primitive values
- Replace hardcoded colors with `@wordpress/base-styles` tokens
- Add unit tests for `getSyncErrorMessages`

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* Show "Retrying..." message when a user initiates the action too, tweak retrying display time

* Disable "Retry" clicks during an active retry

---------

Co-authored-by: alecgeatches <[email protected]>
Co-authored-by: dabowman <[email protected]>
Co-authored-by: Mamaduka <[email protected]>
Co-authored-by: talldan <[email protected]>
Co-authored-by: timiwahalahti <[email protected]>
Co-authored-by: smithjw1 <[email protected]>
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 3, 2026

I just cherry-picked this PR to the wp/7.0 branch to get it included in the next release: d4e4afa

@github-actions github-actions bot added the Backported to WP Core Pull request that has been successfully merged into WP Core label Mar 3, 2026
gziolo pushed a commit that referenced this pull request Mar 3, 2026
* Show reconnect countdown in "Disconnected" dialog

* Add "Retry now" link on disconnect dialog, expose reconnect through sync private APIs

* Move retry countdown logic into separate hook file

* Sync connection modal: Redesign with error-specific actions

Redesign the sync disconnection modal to follow the standard Modal
pattern with a header title, left-aligned body, and right-aligned
footer buttons — replacing the previous centered splash layout.

- Use Modal `title` prop instead of hidden header with large icon
- Add "Back to {PostType}" button with dynamic post type label
- Add manual "Retry" button alongside auto-retry countdown
- Promote "Copy Post Content" to primary when Retry is hidden
- Add `canRetry` flag to error messages: `authentication-failed`
  hides Retry (permissions can't be resolved by retrying)
- Stabilize useEffect dependencies with primitive values
- Replace hardcoded colors with `@wordpress/base-styles` tokens
- Add unit tests for `getSyncErrorMessages`

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* Show "Retrying..." message when a user initiates the action too, tweak retrying display time

* Disable "Retry" clicks during an active retry

---------

Co-authored-by: alecgeatches <[email protected]>
Co-authored-by: dabowman <[email protected]>
Co-authored-by: Mamaduka <[email protected]>
Co-authored-by: talldan <[email protected]>
Co-authored-by: timiwahalahti <[email protected]>
Co-authored-by: smithjw1 <[email protected]>
alecgeatches added a commit to Automattic/gutenberg that referenced this pull request Mar 3, 2026
* Show reconnect countdown in "Disconnected" dialog

* Add "Retry now" link on disconnect dialog, expose reconnect through sync private APIs

* Move retry countdown logic into separate hook file

* Sync connection modal: Redesign with error-specific actions

Redesign the sync disconnection modal to follow the standard Modal
pattern with a header title, left-aligned body, and right-aligned
footer buttons — replacing the previous centered splash layout.

- Use Modal `title` prop instead of hidden header with large icon
- Add "Back to {PostType}" button with dynamic post type label
- Add manual "Retry" button alongside auto-retry countdown
- Promote "Copy Post Content" to primary when Retry is hidden
- Add `canRetry` flag to error messages: `authentication-failed`
  hides Retry (permissions can't be resolved by retrying)
- Stabilize useEffect dependencies with primitive values
- Replace hardcoded colors with `@wordpress/base-styles` tokens
- Add unit tests for `getSyncErrorMessages`

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* Show "Retrying..." message when a user initiates the action too, tweak retrying display time

* Disable "Retry" clicks during an active retry

---------

Co-authored-by: alecgeatches <[email protected]>
Co-authored-by: dabowman <[email protected]>
Co-authored-by: Mamaduka <[email protected]>
Co-authored-by: talldan <[email protected]>
Co-authored-by: timiwahalahti <[email protected]>
Co-authored-by: smithjw1 <[email protected]>
pento pushed a commit to WordPress/wordpress-develop that referenced this pull request Mar 5, 2026
CI run: #11167.

See #64595.

---

I've included a log of the Gutenberg changes with the following command:

git log --reverse --format="- %s" 022d8dd3d461f91b15c1f0410649d3ebb027207f..e499abfb843a43ac88455ca319220c5f181e1cf3 | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy

- Add documentation for contentRole and listView block supports (WordPress/gutenberg#75903)
- Interactivity Router: fix back and forward navigation after refresh (WordPress/gutenberg#75927)
- Real-time collaboration: Fix disconnect dialog on navigate (WordPress/gutenberg#75886)
- Real Time Collab: Throttle syncing for inactive tabs. (WordPress/gutenberg#75843)
- Components: Specify line-height to avoid inheriting default values (WordPress/gutenberg#75880)
- Pattern Editing: Fix sibling blocks to edited pattern not being disabled (WordPress/gutenberg#75994)
- Sync connector PHP behavior with Core backport changes (WordPress/gutenberg#75968)
- Connectors: Avoid manual string concatenation (WordPress/gutenberg#75997)
- DataForm: fix field label for panel (should not be uppercase) (WordPress/gutenberg#75944)
- Views: add support for more overrides (all developer-defined config) (WordPress/gutenberg#75971)
- Use homeUrl instead of siteUrl for link badge evaluations (WordPress/gutenberg#75978)
- DataViews: Right-align `integer` and `number` fields (WordPress/gutenberg#75917)
- Navigation Link: Compare internal links by host instead of origin (WordPress/gutenberg#76015)
- Fix: Skip scaled image sideload for images below big image threshold (WordPress/gutenberg#75990)
- Client side media cherry pick for 7.0 (WordPress/gutenberg#75998)
- Show transform dropdown previews on focus as well as hover (WordPress/gutenberg#75940) (WordPress/gutenberg#75992)
- RTC: Fix syncing of emoji / surrogate pairs (WordPress/gutenberg#76049)
- [Real-time Collaboration] Fix sync issue on refresh (WordPress/gutenberg#76017)
- Real-time collaboration: Improve disconnect dialog (WordPress/gutenberg#75970)
- DataViews: Fix filter toggle flickering when there are locked or primary filters (WordPress/gutenberg#75913) (WordPress/gutenberg#76068)
- Connectors: Dynamically register providers from WP AI Client registry (WordPress/gutenberg#76014)
- PHP-only Blocks: Reflect bound attribute values in inspector controls (WordPress/gutenberg#76040)
- Fix: Set quality and strip metadata in client-side image resize (WordPress/gutenberg#76029)
- RTC: Prevent duplicate poll cycles (WordPress/gutenberg#76059)
- RTC: Fix stale CRDT document persisted on save (WordPress/gutenberg#75975)
- RTC: Disable multiple collaborators if meta boxes are present (WordPress/gutenberg#75939)
- Directly inject styles in overlay to make styles stay consistently mounted (WordPress/gutenberg#75700)
- Real-time collaboration: Fix comment syncing on site editor (WordPress/gutenberg#75746)
- Real-time Collaboration: Bug fix for CRDT user selection and add tests (WordPress/gutenberg#75075)
- RTC: Updates from backport PR (WordPress/gutenberg#75711)
- RTC: Fix undefined array_first() call in sync storage (WordPress/gutenberg#75869)
- RTC: Fix fallthrough for sync update switch statement (WordPress/gutenberg#76060)
- Real-time collaboration: Remove block client IDs from Awareness, fix "Show Template" view (WordPress/gutenberg#75590)
- RTC: Add session activity notifications (WordPress/gutenberg#76065)
- Prevent non-reproducible Sass/CSS builds. (WordPress/gutenberg#76098)
- Block toolbar and context menu: hide pattern actions in Revisions UI (WordPress/gutenberg#76066)
- Try enabling style variation transforms for blocks in contentOnly mode (WordPress/gutenberg#75761)
- Block toolbar: hide styles dropdown in Revisions UI (WordPress/gutenberg#76119)
- Image block: fix lightbox srcset size (WordPress/gutenberg#76092)
- Fix writing flow navigation for annotation style, or any other block with border radius (WordPress/gutenberg#76072)
- Image: Hide 'Set as featured image' for in-editor revisions (WordPress/gutenberg#76123)
- Connectors: Gate unavailable install actions behind install capability (WordPress/gutenberg#75980)
- build: Exclude experimental pages from Core builds (WordPress/gutenberg#76038)
- HTML & Shortcode: Disable viewport visibility support (WordPress/gutenberg#76138)
- RTC: Verify client ID to avoid awareness mutation (WordPress/gutenberg#76056)
- wp-build: Do not remove Core's default script modules registration (WordPress/gutenberg#75705)
- wp-build: Deregister script modules before re-registering (WordPress/gutenberg#75909)
- Remove `! function_exists()` checks from PHP templates (WordPress/gutenberg#76062)
- Connectors: Update page identifier to options-connectors (WordPress/gutenberg#76156)
- Connectors: Align init hook priorities with Core overrides (WordPress/gutenberg#76161)
- Icon Block: Clean up selectors config (WordPress/gutenberg#75786)
- Icons: Fix incorrect icon slug (WordPress/gutenberg#76165)
- RTC: Enable RTC by default (WordPress/gutenberg#75739)
- Rename and visibility modals: gate shortcuts behind canEditBlock to prevent triggering in revisions UI (WordPress/gutenberg#76168)
- Fix: Block style variations not rendering in Site Editor Patterns page (WordPress/gutenberg#76122)
- Client-side media processing: only use media upload provider when not in preview mode (WordPress/gutenberg#76124)
- Notes: Disable for in-editor revisions (WordPress/gutenberg#76180)
- Core Data: Support reading revision data in useEntityProp (fixes footnotes in revisions UI) (WordPress/gutenberg#76106)
- Client-side media processing: Try plumbing invalidation to the block-editor's mediaUpload onSuccess callback (WordPress/gutenberg#76173)
- Connectors: Improve responsive layout on small screens (WordPress/gutenberg#76186)
- Interactivity API: Fix router initialization race condition on Safari/Firefox (WordPress/gutenberg#76053) (WordPress/gutenberg#76191)
- Interactivity: Fix crypto.randomUUID crash in non-secure contexts (WordPress/gutenberg#76151)


git-svn-id: https://develop.svn.wordpress.org/trunk@61843 602fd350-edb4-49c9-b593-d223f7449a82
markjaquith pushed a commit to markjaquith/WordPress that referenced this pull request Mar 5, 2026
CI run: WordPress/wordpress-develop#11167.

See #64595.

---

I've included a log of the Gutenberg changes with the following command:

git log --reverse --format="- %s" 022d8dd3d461f91b15c1f0410649d3ebb027207f..e499abfb843a43ac88455ca319220c5f181e1cf3 | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy

- Add documentation for contentRole and listView block supports (WordPress/gutenberg#75903)
- Interactivity Router: fix back and forward navigation after refresh (WordPress/gutenberg#75927)
- Real-time collaboration: Fix disconnect dialog on navigate (WordPress/gutenberg#75886)
- Real Time Collab: Throttle syncing for inactive tabs. (WordPress/gutenberg#75843)
- Components: Specify line-height to avoid inheriting default values (WordPress/gutenberg#75880)
- Pattern Editing: Fix sibling blocks to edited pattern not being disabled (WordPress/gutenberg#75994)
- Sync connector PHP behavior with Core backport changes (WordPress/gutenberg#75968)
- Connectors: Avoid manual string concatenation (WordPress/gutenberg#75997)
- DataForm: fix field label for panel (should not be uppercase) (WordPress/gutenberg#75944)
- Views: add support for more overrides (all developer-defined config) (WordPress/gutenberg#75971)
- Use homeUrl instead of siteUrl for link badge evaluations (WordPress/gutenberg#75978)
- DataViews: Right-align `integer` and `number` fields (WordPress/gutenberg#75917)
- Navigation Link: Compare internal links by host instead of origin (WordPress/gutenberg#76015)
- Fix: Skip scaled image sideload for images below big image threshold (WordPress/gutenberg#75990)
- Client side media cherry pick for 7.0 (WordPress/gutenberg#75998)
- Show transform dropdown previews on focus as well as hover (WordPress/gutenberg#75940) (WordPress/gutenberg#75992)
- RTC: Fix syncing of emoji / surrogate pairs (WordPress/gutenberg#76049)
- [Real-time Collaboration] Fix sync issue on refresh (WordPress/gutenberg#76017)
- Real-time collaboration: Improve disconnect dialog (WordPress/gutenberg#75970)
- DataViews: Fix filter toggle flickering when there are locked or primary filters (WordPress/gutenberg#75913) (WordPress/gutenberg#76068)
- Connectors: Dynamically register providers from WP AI Client registry (WordPress/gutenberg#76014)
- PHP-only Blocks: Reflect bound attribute values in inspector controls (WordPress/gutenberg#76040)
- Fix: Set quality and strip metadata in client-side image resize (WordPress/gutenberg#76029)
- RTC: Prevent duplicate poll cycles (WordPress/gutenberg#76059)
- RTC: Fix stale CRDT document persisted on save (WordPress/gutenberg#75975)
- RTC: Disable multiple collaborators if meta boxes are present (WordPress/gutenberg#75939)
- Directly inject styles in overlay to make styles stay consistently mounted (WordPress/gutenberg#75700)
- Real-time collaboration: Fix comment syncing on site editor (WordPress/gutenberg#75746)
- Real-time Collaboration: Bug fix for CRDT user selection and add tests (WordPress/gutenberg#75075)
- RTC: Updates from backport PR (WordPress/gutenberg#75711)
- RTC: Fix undefined array_first() call in sync storage (WordPress/gutenberg#75869)
- RTC: Fix fallthrough for sync update switch statement (WordPress/gutenberg#76060)
- Real-time collaboration: Remove block client IDs from Awareness, fix "Show Template" view (WordPress/gutenberg#75590)
- RTC: Add session activity notifications (WordPress/gutenberg#76065)
- Prevent non-reproducible Sass/CSS builds. (WordPress/gutenberg#76098)
- Block toolbar and context menu: hide pattern actions in Revisions UI (WordPress/gutenberg#76066)
- Try enabling style variation transforms for blocks in contentOnly mode (WordPress/gutenberg#75761)
- Block toolbar: hide styles dropdown in Revisions UI (WordPress/gutenberg#76119)
- Image block: fix lightbox srcset size (WordPress/gutenberg#76092)
- Fix writing flow navigation for annotation style, or any other block with border radius (WordPress/gutenberg#76072)
- Image: Hide 'Set as featured image' for in-editor revisions (WordPress/gutenberg#76123)
- Connectors: Gate unavailable install actions behind install capability (WordPress/gutenberg#75980)
- build: Exclude experimental pages from Core builds (WordPress/gutenberg#76038)
- HTML & Shortcode: Disable viewport visibility support (WordPress/gutenberg#76138)
- RTC: Verify client ID to avoid awareness mutation (WordPress/gutenberg#76056)
- wp-build: Do not remove Core's default script modules registration (WordPress/gutenberg#75705)
- wp-build: Deregister script modules before re-registering (WordPress/gutenberg#75909)
- Remove `! function_exists()` checks from PHP templates (WordPress/gutenberg#76062)
- Connectors: Update page identifier to options-connectors (WordPress/gutenberg#76156)
- Connectors: Align init hook priorities with Core overrides (WordPress/gutenberg#76161)
- Icon Block: Clean up selectors config (WordPress/gutenberg#75786)
- Icons: Fix incorrect icon slug (WordPress/gutenberg#76165)
- RTC: Enable RTC by default (WordPress/gutenberg#75739)
- Rename and visibility modals: gate shortcuts behind canEditBlock to prevent triggering in revisions UI (WordPress/gutenberg#76168)
- Fix: Block style variations not rendering in Site Editor Patterns page (WordPress/gutenberg#76122)
- Client-side media processing: only use media upload provider when not in preview mode (WordPress/gutenberg#76124)
- Notes: Disable for in-editor revisions (WordPress/gutenberg#76180)
- Core Data: Support reading revision data in useEntityProp (fixes footnotes in revisions UI) (WordPress/gutenberg#76106)
- Client-side media processing: Try plumbing invalidation to the block-editor's mediaUpload onSuccess callback (WordPress/gutenberg#76173)
- Connectors: Improve responsive layout on small screens (WordPress/gutenberg#76186)
- Interactivity API: Fix router initialization race condition on Safari/Firefox (WordPress/gutenberg#76053) (WordPress/gutenberg#76191)
- Interactivity: Fix crypto.randomUUID crash in non-secure contexts (WordPress/gutenberg#76151)

Built from https://develop.svn.wordpress.org/trunk@61843


git-svn-id: http://core.svn.wordpress.org/trunk@61130 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Backported to WP Core Pull request that has been successfully merged into WP Core [Feature] Real-time Collaboration Phase 3 of the Gutenberg roadmap around real-time collaboration [Package] Core data /packages/core-data [Package] Editor /packages/editor [Package] Sync [Type] Task Issues or PRs that have been broken down into an individual action to take

Projects

None yet

4 participants