Skip to main content
Because the artwork URL is treated as immutable. Every asset.url you send has to resolve to the same image forever. To change a design, publish it at a new URL and render with that one. Reusing a single URL for different content is not supported and can return the earlier image.

The pattern that breaks

If design.png held one image yesterday and a different one today, the two renders are asking for the same thing as far as the request is concerned.

The pattern that works

Give every version of a design its own address.
A content hash in the filename makes this automatic: the address changes exactly when the bytes change, and never otherwise.
A query string appended to the same file does not count. The file behind the address still changes, and a parameter is not a different image.

Google Drive is the usual culprit

This is where the problem turns up most often. Replace file and Manage versions both keep the same shareable link, so the link goes on resolving to the design that was there first. Upload the new design as a new file, which gets its own link, and render with that link instead. Do not replace a file that a render request has already pointed at.

Confirm which image the URL serves

Fetch the URL yourself before you blame the render.
If the length or ETag matches the old design, your storage is still serving it and the render is faithfully reproducing what it was given.
Compare that digest to the file you meant to publish. When the two differ, fix the upload rather than the render request.

Nothing else caches your design

The template itself does not need re-uploading when the artwork changes, because artwork is a render-time argument rather than part of the template. If you changed the PSD instead, that does need a new upload, and Upload a PSD covers when.

Artwork placement

How a design meets a slot, and every field on asset.

Errors

What the API returns when an artwork URL cannot be fetched.