Skip to content

How to recover from connection and device failures

View as Markdown

First identify the failure boundary: documentation retrieval, registration, user authorization, token validation, scope, resource policy, payload, provider link or device observation.

SymptomNext step
Guide returns a login page/app shellUse the raw Markdown link from the guide index; report the broken link to support
DCR invalid metadataCorrect callback, auth method, supported grants/scopes; do not invent a secret
Callback state/issuer mismatchStop; discard the response and restart authorization securely
Token expiredRefresh with the same client/resource or ask for renewed user consent
insufficient_scope (403)Do not retry. The response names the missing scope; ask the user to reconnect or approve it (see "Scopes for setup" in first-setup)
Policy deniedRead authorization rules; user/owner must approve access
Empty inventoryValid connection can have no devices; check linking/sharing without guessing IDs
Invalid payloadRetrieve the exact capability version/schema and correct the request
Provider credential expiredAsk the user to relink the provider account
Stale/unavailable stateSTALE is the last known state: report it with its timestamp. Errored or missing is unknown. Do not claim physical completion
Lost command responseRecover existing receipt/readback; retry only under documented replay guarantees
Committed cleanup pendingRead the committed state/result before any retry

See API behavior. Never include tokens, provider secrets or another user's private resources in diagnostics.