Skip to content

Cloudinary asset being replaced #1241

Description

@aihowes

Bug Description

PR #1182 causes Cloudinary assets to be overwritten when a new WordPress upload reuses the same filename.

WordPress only uniquifies filenames within the same month. If test.jpg is uploaded in April, Cloudinary creates public ID test. A second test.jpg in the same month is renamed to test-1.jpg (public ID test-1). A later upload of test.jpg in May keeps the original filename, so Cloudinary again gets public ID test.

After #1182, the plugin treats an existing public ID as a replacement and overwrites the original Cloudinary asset instead of creating a distinct one.

Expected Behaviour

Uploading a new file with the same basename in a different month should not overwrite an existing Cloudinary asset. The plugin should generate a unique public ID (or otherwise treat it as a new asset), even when WordPress reuses the original filename.

Steps to reproduce

  1. Upload test.jpg to the WordPress Media Library in month A (e.g. April). Confirm it syncs to Cloudinary with public ID test.
  2. Upload a different image also named test.jpg in the same month. Confirm WordPress renames it to test-1.jpg and Cloudinary uses public ID test-1.
  3. Upload another different image named test.jpg in a later month (e.g. May). Confirm WordPress keeps the filename test.jpg.
  4. Check the original Cloudinary asset with public ID test.
  5. See that it has been overwritten by the May upload instead of remaining the April image.

Screenshots

Additional context

This is a regression from #1182. The change detects an existing public ID and assumes a replacement, which is incorrect when WordPress reuses a filename across months.

  • WordPress version:
  • Plugin version:
  • Gutenberg plugin version (if applicable):
  • PHP version:
  • Plugin settings:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions