Introduction
A server migration can move the application to the new backend while Cloudflare Load Balancer traffic still reaches the old origin. DNS may be correct and the new server may pass health checks, but the load balancer pool still contains the legacy endpoint, so part of the traffic continues to hit infrastructure that should have been retired.
Treat this as a load-balancer pool membership problem instead of a generic DNS problem. Start by checking the exact origin pool tied to the affected hostname, because the old server can remain in rotation even after the visible cutover looks complete.
Symptoms
- Some Cloudflare-routed traffic still reaches the old server after migration
- Responses alternate between new and old content
- The new backend is healthy, but a portion of requests still hits legacy infrastructure
- Health checks look fine, yet users report inconsistent behavior
- The problem appears only behind Cloudflare Load Balancer routing
- The issue started after origin migration, backend replacement, or staged cutover
Common Causes
- The old origin is still present in the Cloudflare Load Balancer pool
- Traffic steering or weighting still sends a percentage of requests to the old backend
- The fallback pool still references legacy infrastructure
- Health monitors consider the old server healthy, so Cloudflare keeps using it
- Multiple pools or regions were updated unevenly during migration
- DNS and origin checks were updated, but pool membership cleanup was missed
Step-by-Step Fix
- Identify the exact Cloudflare Load Balancer, hostname, and origin pool serving the affected traffic, because you need the live routing object before checking which backends remain active.
- Review every origin member in the active pool and confirm whether the old server is still listed there, because one leftover member can keep receiving traffic even after the cutover appears complete.
- Check weights, steering mode, and regional routing behavior for the pool, because the legacy origin may still receive a small but meaningful share of requests instead of being fully removed.
- Inspect the fallback pool and any secondary pools tied to the hostname, because the primary pool may look correct while a backup path still references the previous server.
- Review the health monitor attached to the pool and compare it with the behavior of both the new and old origins, because a healthy status on the old server will keep it eligible for live traffic.
- Remove or replace the old origin from every active and fallback pool, then retest the exact hostname and path that exposed the problem, because fixing only one pool is not enough when multiple routing layers exist.
- Compare Cloudflare-routed responses across repeated requests after the change, because intermittent old content is often the clearest sign that a stale pool member was still in rotation.
- Confirm the old server no longer receives load-balancer traffic in its logs, because a correct Cloudflare dashboard update should match what the backend actually sees.
- Document the final pool membership, fallback design, and health-monitor behavior after recovery, because load balancer pool leftovers are easy to miss during future origin migrations.