Every DNS record has a TTL - Time To Live - measured in seconds. It tells resolvers around the world how long they're allowed to cache the answer before they need to ask again. It's one of those settings most people leave at the default and forget, right up until it causes a problem.
How caching works
When a browser looks up myproject.localnode.app, its operating system asks a recursive resolver (usually your ISP's, or 1.1.1.1, or 8.8.8.8). That resolver queries Cloudflare's authoritative DNS, gets the answer, and caches it for TTL seconds. Every subsequent query from any device using that resolver gets the cached answer instantly - no round-trip to Cloudflare required.
This is great for performance. It becomes a problem when you need to change the record.
The migration trap
Say your A record has a TTL of 86400 (24 hours) and you're migrating servers. You update the record. Some visitors - those whose resolvers cached it recently - will keep hitting the old server for up to 24 hours. There's nothing you can do once the migration starts.
The right approach
Before any planned change, lower your TTL to 300 (5 minutes) or even 60. Wait for at least one full TTL cycle so the short TTL propagates everywhere. Make your change. After it's stable, raise the TTL back to something sensible like 3600. On localnode.app, TTL 1 means "Auto" - Cloudflare picks an appropriate value, usually around 300.