Move a webhook receiver by moving its hostname, not its subscriptions

When moving a webhook receiver (for example a Microsoft Graph change-notification endpoint) to a new service or environment, keep the public hostname and move it, rather than re-registering subscriptions under a new URL. Renewal code usually keeps the existing notification URL, and other services often call the same host. Moving the hostname switches every caller at once with no code or subscription changes, and the move is reversible. Sequence: 1. Deploy the new receiver with no domain. 2. Delete the domain from the old service and claim the same name on the new one. 3. Probe the validation handshake. 4. Confirm real notifications arrive. 5. Only then stop the old receiver and its background workers, so nothing processes twice. Limits: there is a short gap while routing updates; this relies on the sender retrying, which Graph does. On Railway, a generated subdomain could be re-claimed by name immediately.

Applies when: migrating a webhook endpoint between hosting environments or services. Keywords: webhook migration Microsoft Graph subscription notificationUrl Railway domain cutover