platform_standby
Platform on standby
HTTP 503
Answering the request needed a write the platform couldn't make just then: our standby, during a failover, makes no writes (nothing was written), and the primary pauses writes for a few seconds during a planned switchover. Send the same request again after the seconds in Retry-After, with the same Idempotency-Key where the operation takes one. A signed request is signed anew, with a new nonce: whether this one's nonce was spent depends on which write was refused.
The platform's answer: plain JSON
During a failover, the platform can answer a write (POST or PATCH) itself, before the API sees it. Nothing was written: send the same request again after the seconds in Retry-After, with the same Idempotency-Key where the operation takes one. Reads are not refused this way.
This answer has no code, type or request_id, and no X-Request-Id header, so branch on error when there is no code.
HTTP 503
content-type: application/json; charset=utf-8
retry-after: 60
x-sa-platform-mode: standby{
"error": "platform_standby",
"message": "This deploy is running in PLATFORM_MODE=standby and is not the active writer. Side-effecting requests are refused so the read-only replica can't diverge from the primary. Retry against the active platform."
}The API's answer: a problem
The API answers this problem, with Retry-After too, when a write reaches it that the platform couldn't make just then: the standby's database refuses every write during a failover, and the primary pauses writes for a few seconds during a planned switchover.
Sent as application/problem+json, with the request id in request_id and the X-Request-Id header. Branch on code: the error and detail sentences can change, and some operations add members of their own.
{
"error": "Platform on standby",
"code": "platform_standby",
"type": "https://secondappraisal.com/developers/errors/platform_standby",
"title": "Platform on standby",
"status": 503,
"detail": "Platform on standby",
"instance": "/api/gap/v1/referrals",
"request_id": "req_4f9a2c7e1b8d4a6f9c3e2b1a7d5f8e0c"
}Operations that can send it
- POST /api/gap/v1/referrals · HTTP 503 · Create a referral
- GET /api/gap/v1/referrals · HTTP 503 · List referrals
- GET /api/gap/v1/referrals/{id} · HTTP 503 · Retrieve a referral
- PATCH /api/gap/v1/referrals/{id} · HTTP 503 · Update or cancel a referral
- POST /api/gap/v1/referrals/bulk · HTTP 503 · Create referrals in bulk
- POST /api/gap/v1/referrals/{id}/simulate · HTTP 503 · Simulate a sandbox referral's next stepAt launchIt opens with the referral sandbox.
- POST /api/gap/v1/referrals/{id}/attest · HTTP 503 · Attest a warm handoffAt launchIt opens with the referral sandbox.
- GET /api/gap/v1/analytics · HTTP 503 · Savings and spend analytics
- POST /api/gap/v1/plans/enrollments · HTTP 503 · Enroll one vehicle
- GET /api/gap/v1/plans/enrollments · HTTP 503 · List your roster
- GET /api/gap/v1/plans/enrollments/{id} · HTTP 503 · Retrieve one enrollment
- PATCH /api/gap/v1/plans/enrollments/{id} · HTTP 503 · Cancel, swap the VIN, or edit contact details
- POST /api/gap/v1/plans/enrollments/bulk · HTTP 503 · Enroll up to 500 vehicles
- POST /api/gap/v1/plans/roster-sync · HTTP 503 · Reconcile your full roster
- POST /api/gap/v1/plans/loss-notices · HTTP 503 · Tell us a member vehicle was declared a total loss
- GET /api/gap/v1/plans/redemptions · HTTP 503 · Member consultations drawn against your roster
- GET /api/gap/v1/plans/statements · HTTP 503 · Your monthly membership statements
- GET /api/gap/v1/events · HTTP 503 · List your eventsAt launchIt opens with the partner security platform.
- GET /api/gap/v1/me · HTTP 503 · The key making this call
- POST /api/gap/v1/credentials/{id}/verify · HTTP 503 · Activate a signed credentialAt launchIt opens when signed credentials open.
- POST /api/gap/v1/signature-check · HTTP 503 · Check a signature (test credentials)Planned: not served yet.
- POST /api/gap/v1/review-status/lookup · HTTP 503 · Look up review status by VIN, claim number or referenceAt launchIt opens with review records.
- GET /api/gap/v1/referrals/{id}/review-record · HTTP 503 · Retrieve a referral's review recordAt launchIt opens with review records.