Skip to content

Tabs block keeps post in dirty state after reload without any user changes #78337

Description

@Mustafabharmal

Description

The core/tabs block marks the editor as having unsaved changes immediately after reloading a saved post, even when the user has not modified anything.

This causes the editor to show the "Save draft" button instead of the normal "Saved" state with the checkmark indicator that other core blocks display.

The serialized content remains unchanged, but the editor still considers the post edited after loading a post containing a Tabs block.

Step-by-step reproduction instructions

  1. Create a new post.
  2. Insert a Tabs block.
  3. Save or publish the post.
  4. Reload the editor.
  5. Without making any changes, observe the editor state.

Actual behavior

  • The editor shows the "Save draft" button.
  • The post appears to have unsaved changes.
  • Refreshing or navigating away may trigger the leave-page warning dialog.

Expected behavior

  • The editor should remain clean after reload.
  • The header should display the normal "Saved" state with the checkmark indicator.
  • No save action should appear until the user actually edits the content.

Screenshots, screen recording, code snippet

The issue appears specific to the Tabs block and does not reproduce with other core blocks under the same conditions. The problem occurs after reloading a saved post containing a Tabs block, without any user interaction.

Tab.Block.Testing.mov

Environment info

  • WordPress: Trunk
  • Gutenberg: Trunk / latest plugin version
  • Browser: Chrome
  • Theme: Twenty Twenty-Five
  • Plugins: Only Gutenberg active

Please confirm that you have searched existing issues in the repo.

  • Yes

Please confirm that you have tested with all plugins deactivated except Gutenberg.

  • Yes

Please confirm which theme type you used for testing.

  • Block
  • Classic
  • Hybrid (e.g. classic with theme.json)
  • Not sure

Metadata

Metadata

Labels

[Status] In ProgressTracking issues with work in progress[Type] BugAn existing feature does not function as intended

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions