Thanks for the report. We’ve reviewed the current Image Watermark codebase in detail, and based on how the plugin is implemented, the Remove Watermark action is designed to persist immediately. In a standard WordPress setup using the local filesystem, the restored image is written back to disk at the moment you click Remove, without requiring an additional Update on the attachment.
Because of that, the behavior you’re seeing — “success” message but the unwatermarked image only appearing after pressing Update — is unlikely to come from the core IW logic itself. The more probable causes are external factors affecting how images are served or regenerated:
Most likely explanations:
– Browser, CDN, or server‑side caching serving an older version of the image or its generated sizes.
– Media offloading or optimization plugins (S3 offload, WebP converters, thumbnail regenerators, etc.) that may be serving a different asset than the one IW restores.
– Theme or site‑specific processes that rewrite or regenerate images after IW restores them.
– Filtered or non‑standard media paths, which can cause compatibility issues if the image is not stored where IW expects it.
What to check:
– Clear any CDN or caching layers (Cloudflare, LiteSpeed, WP Rocket, etc.).
– Temporarily disable media‑offload or optimization plugins to confirm whether they are overriding the restored file.
– Verify that the image is stored locally and not being served from an external bucket or dynamically generated path.
– Check whether any custom code hooks into wp_generate_attachment_metadata or similar filters.
From what we can see, the only credible IW‑side issue would be compatibility with offloaded or filtered media paths, not the remove‑watermark logic itself.
If you can share details about your media stack (offload plugins, caching layers, optimization tools), we can help pinpoint the exact interaction.