Game asset processing4 min read

A Replaced Spine PNG Still Looks Old? Match Source, Hosted File and Loaded Revision

An unchanged filename does not prove identical bytes or a browser-cache defect. Trace the requested resource and its revision before changing cache behavior.

A Replaced Spine PNG Still Looks Old? Match Source, Hosted File and Loaded Revision
Concept art of one character in teal, orange and purple looks
AI-generated appearance illustration, not a cache or release comparison.

The local PNG has changed, yet the online character appears unchanged. Retain three pieces of evidence: the intended source file, the file returned by the hosted resource address, and the address actually requested by the receiving project. Matching filenames or a 200 response do not establish matching revisions.

Identify what the runtime really requested

Record the final URL, redirect chain, resource revision and Atlas page name, not only the filename shown beside an upload control. A relative reference can resolve into another directory; first use the Atlas page-URL checklist for that part of the chain.

Without exposing signed parameters, compare available files using size and a digest computed from their actual bytes. Equal sizes do not establish equal content, and a hash-looking filename is not a completed checksum verification.

Follow three evidence branches

  • The source is new but the hosted file is old: inspect upload destination, release revision and server or edge caching, not only the local browser.
  • The specified hosted address is new but the application requests an older address: inspect exported references, configuration or retained loader resources.
  • The source, hosted file and actually requested bytes agree but the appearance is wrong: inspect the displayed skin, attachment and image mapping instead of making cache the only explanation.

These are diagnostic branches, not defects reproduced in a user project here. If the actually loaded resource is unavailable, record that gap rather than treating an occasional successful refresh as a root-cause finding.

A 304 is not a failed load, and ETag is not necessarily a checksum

The MDN caching guide explains that a client can reuse its stored representation after a conditional request returns 304. That response is not a new complete image body. Servers choose how to generate ETag: it may derive from content or a revision identifier, so do not automatically treat it as a SHA digest.

Record Cache-Control, validators such as ETag or Last-Modified, and request conditions in the context of the release. One controlled refresh can help compare behavior without proving the state of every CDN, loader or in-memory resource.

Keep the whole bundle on one revision

With versioned or content-addressed URLs, update references under the existing release process when content changes. Atlas data and page images must agree; changing one PNG address alone may not update the bundle. Random query parameters every frame or disabling caching site-wide are not general repairs.

Keep asset and export revisions in Spine Workbench using the guide, then verify the receiving project's actual request and appearance. No cache experiment or current Workbench defect is claimed here. The three-color cover is not a before-and-after release comparison.

Ready to try "A Replaced Spine PNG Still Looks Old? Match Source, Hosted File and Loaded Revision"?

Use our online tools to apply this tutorial to your indie game project right away.