Opened 7 weeks ago
Closed 7 weeks ago
#8370 closed defect (bug) (duplicate)
Plugin Directory responsive screenshot thumbnails ignore asset revisions and serve stale images
| Reported by: | pixelgrade | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Plugin Directory | Keywords: | has-test-info |
| Cc: |
Description
Responsive Plugin Directory screenshot thumbnails can show an obsolete image after a plugin author replaces an existing screenshot-N.png, while the gallery lightbox correctly opens the current image.
Reproduction
The Pixelgrade Assistant listing provides a concrete example:
https://wordpress.org/plugins/pixelgrade-assistant/
- screenshot-1.png at SVN r2136122 is 1764x1706.
- The same path was replaced at r3607680 with a 1440x900 image.
- The direct revisioned source is correct:
https://ps.w.org/pixelgrade-assistant/assets/screenshot-1.png?rev=3607680
- Request the responsive source with the new revision:
https://i0.wp.com/ps.w.org/pixelgrade-assistant/assets/screenshot-1.png?rev=3607680&w=300
- Compare it with the old revision:
https://i0.wp.com/ps.w.org/pixelgrade-assistant/assets/screenshot-1.png?rev=2136122&w=300
Both responsive requests return the same old 300x290 image with this SHA-256:
4c1c461c36ec2bd406d00de00379bf90f588ccd4d1c09cdd342fd794845dd4f0
The current 1440x900 source should produce a 300x188 responsive image. The CDN response is a HIT and sends:
cache-control: public, max-age=63115200
All four screenshots on this plugin displayed this thumbnail/lightbox mismatch: screenshots 1-3 were 300x290 and screenshot 4 was 300x202, while all current sources are 1440x900.
Regression context
The July 2026 Plugin Directory gallery rebuild introduced core Gallery/Image blocks, lightbox behavior, and responsive image sources:
https://developer.wordpress.org/news/2026/07/whats-new-for-developers-july-2026/
https://meta.trac.wordpress.org/changeset/14950
The WordPress Image CDN documentation explains that changing query arguments does not invalidate an image and recommends changing the filename:
https://jetpack.com/support/site-accelerator/
The gallery therefore supplies an SVN revision query that the downstream image CDN does not use as an effective cache buster.
Expected behavior
A responsive screenshot URL for the current SVN revision should return pixels derived from that revision. Plugin authors should not need a new extension or filename every time they refresh a directory screenshot.
One possible fix is to encode the asset revision into the pathname before handing the URL to i0.wp.com, or avoid the Image CDN for revisioned ps.w.org assets. Appending rev only as a query parameter cannot reliably invalidate this cache.
Workaround and tracking
For Pixelgrade Assistant, the four current screenshots were republished under new .jpg paths at SVN r3613826. That should repair this listing after directory metadata propagates, but it does not solve the platform-wide regression for existing screenshot paths.
Tracking issue:
https://github.com/pixelgrade/pixelgrade-assistant/issues/69
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)
Correction to the expected responsive dimensions above: i0.wp.com floors the exact 187.5px result to 187px, so 300x187 is the observed correct output for a 1440x900 source at w=300.
The new JPG assets from r3613826 are already directly available, byte-for-byte identical to the submitted files, and their i0.wp.com variants return the current 300x187 images. Plugin Directory screenshot metadata is still propagating at the time of this comment.