Connection states
Interpret the durable state returned by Domain0 connections.
connection.state is the server source of truth. Browser callbacks help your
interface react immediately, but your product can retrieve the saved connection
again after a reload, token refresh, or customer return.
| State | Meaning | Product behavior |
|---|---|---|
requested | The connection intent was created | Open or resume Domain0 Connect |
detecting_provider | Provider discovery is running | Show progress |
provider_selected | A provider was detected or selected | Continue authorization |
domain_connect_pending | Provider-hosted consent is in progress | Wait for the customer to return |
authorization_pending | Provider authorization is required | Keep the flow open or resumable |
authorized | Provider access is ready | Continue to plan preparation |
planning | Domain0 is reading current DNS and preparing changes | Show progress |
awaiting_confirmation | The exact DNS change plan is ready | Let the customer review and confirm |
applying | Confirmed changes are being applied | Prevent duplicate customer actions |
propagation_pending | Changes were submitted and DNS verification is pending | Allow close and later resume |
active | Every required record is authoritative | Mark the domain connected |
manual_required | Guided setup is required | Show the exact manual records |
failed_retryable | A classified temporary operation failed | Offer the normal retry path |
failed_terminal | The connection cannot continue | Start a new connection after resolving the cause |
cancelled | The connection was cancelled | Keep it as historical state or start a new connection |
Terminal states
active, failed_terminal, and cancelled are terminal. Closing the dialog
in any other state does not cancel or delete the connection.
Retryable failures
When state is failed_retryable, connection.failure contains a public failure
code, occurrence time, and exact resume state. Use the high-level dialog retry
action instead of repeating provider mutations from host code.
Product synchronization
Use onSuccess for immediate browser UI and a verified webhook for durable
server updates. If the two disagree, retrieve the connection and trust its
current server state.