internal_error
An unexpected server-side failure occurred. This is Canopy's fault, not the caller's.
HTTP 500
When this happens
The operation a request maps to, creating a payment intent or issuing its source inbox, failed for a reason unrelated to the request itself: a downstream dependency failure, or an unexpected exception. Every other error on this list is about something the caller did. This one is about Canopy's own state.
Every operation this API exposes can return this code. It is derived from the same PUBLIC_API_ERROR_CODES enum every other status is, so a route cannot silently omit it from what it might return.
The error envelope
{
"error": {
"code": "internal_error",
"message": "Something went wrong creating this intent.",
"request_id": "req_1a2b3c4d5e6f7a8b9c0d1e2f",
"docs": "https://canopypay.io/errors/internal_error"
}
}What to do about it
Retry reads and repeatable operations with backoff. An intent create naming the same destination and terms can reuse its active intent: if the original request never took effect, the retry runs it for the first time, and if it did take effect, the retry resolves to the same intent with created: false instead of minting a second one. That retry rotates the widget token. A create without destination fields may already have committed before the failure; repeating it creates another intent. Save and reuse the intent ID when available, and reconcile an uncertain result before creating again. If the error persists across retries, include the request_id from the error body when contacting support. It identifies this exact request in Canopy's logs and is the fastest way to a root cause.