All error codes

no_gpu_capacity

HTTP 409 Error

What happened

The platform has nothing free that fits the request. THREE DIFFERENT SHORTAGES SHARE THIS CODE on a type where you pick the cards: the cards themselves, the memory reserved on the host that has them, and the local disk on that host - and the detail field of this response says which one it was, in words. The detail is worked out from the platform inventory as it reads at the moment of the answer, so a concurrent order may have changed it since the refusal; when it cannot be worked out, the field is absent rather than guessed. On a type sold as a GPU package there is only one shortage to have: no whole host is free - a package is one host with its card, and hosts are counted in single digits. Your request is correct; cards and hosts are not shared between servers, so the state lasts until someone releases theirs.

What to do

On a type where you pick the cards, read the detail first and change what it names: fewer cards or another model when it says the cards, less memory when it says the memory reserve, a smaller disk or disk_type ceph when it says the local disk - the type's pricing lists the models and the limits. On a package type there is nothing to adjust in the request: wait for a host to free up, or create the server on another type. Repeating the same request unchanged frees nothing, so retry only when the request changes or you know capacity was released. A refused request costs you no address: one it asked for as new is released again, and an address you named yourself (or one reuse found free) was already yours and stays, billed as before.

Retrying

Change the state this refers to, then repeat the same request with the same idempotency key.

How it arrives

{
    "type": "https://docs.fiberax.com/errors/no_gpu_capacity",
    "title": "Error",
    "status": 409,
    "code": "no_gpu_capacity",
    "request_id": "a277dcd1ca652c65"
}

Branch your code on code, never on the wording of title.