Skip to content

[VideoPress] Legacy wp:video blocks with VideoPress attributes cause persistent "Review 1 change" in Site Editor #48633

@druesome

Description

@druesome

Description

When a Site Editor template contains a wp:video block in the legacy VideoPress format (with guid and videoPressClassNames attributes), the Site Editor persistently shows "Review 1 change" on every page load — even after saving. Saving clears it temporarily, but it reappears on reload indefinitely.

Root Cause

On every Site Editor load, the Jetpack/VideoPress JavaScript runs a block transform against legacy wp:video blocks and calls editEntityRecord() on the template — flagging it as dirty. However, the resulting serialized content is byte-for-byte identical to what's already stored (confirmed via Network tab: PATCH payload matched server response exactly). The dirty state is created entirely client-side, with no actual change to persist.

Steps to Reproduce

  1. Open the Site Editor on a site with Jetpack/VideoPress active
  2. Edit any template via the Code Editor and insert the following legacy block:
<!-- wp:video {"id":1,"guid":"239t8ryY","videoPressClassNames":"wp-block-embed is-type-video is-provider-videopress","title":"Example Video"} -->
<figure class="wp-block-video wp-block-embed is-type-video is-provider-videopress"><div class="wp-block-embed__wrapper">
https://videopress.com/v/239t8ryY?resizeToParent=true&amp;cover=true&amp;preloadContent=metadata&amp;useAverageColor=true
</div><figcaption><br></figcaption></figure>
<!-- /wp:video -->
  1. Save the template
  2. Reload the Site Editor

Expected: No unsaved changes indicator — nothing changed.

Actual: "Review 1 change" appears immediately on every reload.

Impact

This affects sites that have VideoPress videos embedded in templates using the legacy wp:video format (created by older versions of the plugin). Users are permanently shown a false unsaved changes prompt in the Site Editor with no way to dismiss it permanently. Confirmed on multiple customer sites.

Suggested Fix

Before calling editEntityRecord() during the block transform, compare the resulting serialized template content against the currently stored value. Only dispatch the edit if the content actually differs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugWhen a feature is broken and / or not performing as intended[Feature] VideoPressA feature to help you upload and insert videos on your site.

    Type

    No type
    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