Introduction

When a deploy succeeds but the site still serves old content, the problem is usually not the build itself. Something in the delivery path is still pointing at stale output, stale containers, or the wrong origin. The right fix is to find which layer is still serving the old version instead of redeploying repeatedly and hoping the cache clears itself.

Symptoms

  • The deployment pipeline reports success, but the public site still shows old text, styles, or assets
  • Some visitors see the new version while others still get the previous release
  • Hard refresh helps in some cases but not others
  • API responses or HTML are old even though static files were updated
  • The issue started after enabling caching, load balancing, or a new deployment platform

Common Causes

  • CDN, reverse proxy, or browser caches still serve the previous response
  • A load balancer routes traffic to a stale instance, old container, or old server pool
  • The deploy updated one environment while the live domain still points to another target
  • Static asset versioning or cache headers allow old files to remain active
  • Background build or publish steps finished partially and left mixed versions online

Step-by-Step Fix

  1. Confirm exactly which parts are stale, such as HTML, API data, JavaScript bundles, images, or only one region of traffic.
  2. Compare headers, asset hashes, and deployment identifiers between expected output and what the public hostname actually returns.
  3. Check whether the live domain, load balancer, or CDN still points to an older environment, origin, or deployment slot.
  4. Review cache headers and invalidation behavior across CDN, reverse proxy, application cache, and browser layers.
  5. If multiple instances serve the site, verify that every instance is running the same release and that no stale node remains in rotation.
  6. Purge or expire caches only after confirming the new build is present at the origin you intend to expose.
  7. Retest from a clean browser session and from an external network so you can separate browser cache from shared-edge cache.
  8. If only some pages are stale, inspect application-level rendering, background regeneration, or data cache behavior instead of focusing only on static assets.
  9. Keep deployment target mapping and cache invalidation steps documented so future releases switch traffic cleanly to the intended version.