Test recovery from a disconnected platform fixture

This recipe tests recovery logic against synthetic sandbox records. A platform name such as Xbox or PlayStation is fixture data, not evidence of a live connection.

Recovery state machine

  1. Detect the sandbox link in disconnected, expired, or verification_failed.
  2. Preserve the family and policy IDs.
  3. Restart the sandbox connect or compliance-link flow.
  4. Require explicit guardian consent where the flow models it.
  5. Start a new synthetic job and poll its result.
  6. Keep the prior failure visible in audit UI.
ts
if (link.status !== "verified") {
  showReconnectAction({
    platformId: link.platform_id,
    lastError: link.last_error,
  })
}

Do not claim “protection restored” from a sandbox verified or completed flag. In evaluation, the correct copy is “sandbox workflow restored” or “fixture job completed.”

Production recovery requires adapter-specific token renewal, authorization, read-back evidence, rollback, incident handling, and operational ownership. There is no live-key/base-URL switch from this sandbox recipe.