internal_error
HTTP 500, type api_error.
Something failed on our side.
Why it happened
A 5xx is our defect, never yours. There is one code for all of them on purpose: there is
nothing in the distinction you could branch on, and a family of internal codes would invite you
to write handling for our implementation.
It does not tell you whether the request was applied. A failure can happen before or after the work.
How to fix it
Retry with the same Idempotency-Key. That is what makes the retry safe when you cannot know
whether the original took effect.
If that retry answers idempotency_key_in_flight, follow that
page: keep retrying with the same key, and contact support before you send anything under a new
key. A read that shows nothing happened does not prove the original has stopped.
A request that takes no Idempotency-Key is safe to retry as it is: a read changes nothing, and DELETE /payment_instruments/{id} on a card that is already detached returns it unchanged, keeping the first detach time.
If it persists, quote the request_id from the response. It is in our logs and it is the first
thing support will ask for.
Related codes
idempotency_key_in_flight-- the original is still runningrate_limit_exceeded-- refused rather than failed