Higgsfield 403 insufficient credits vs Sume 402: handle both
Higgsfield returns 403 when credits run out; Sume returns 402 insufficient_credits. A status-code map for 401, 403, 404, 422 and 402 when porting a client.

A Higgsfield request with no credits left returns 403, and the docs say it is retryable after funding the account. The Sume equivalent is 402 insufficient_credits: the balance is not enough for the requested generation. The two APIs split the other common errors differently too, so a ported client needs a map, not a rename.
Higgsfield's error table
Higgsfield's errors page lists 500 (retry with backoff), 503 (model disabled or not ready, later), 400 (invalid parameters or concurrency reached), 423 (model temporarily blocked, later), 401 (no), 403 (insufficient credits, after funding), 404 (no) and 422 (validation failed, no). Its authentication page adds that a model your account cannot use can return 404, 423 or 503.
| Cause | Higgsfield | Sume |
|---|---|---|
| Bad or missing key | 401 | 401 unauthorized |
| Out of funds | 403 | 402 insufficient_credits |
| Invalid input | 422 (400 for invalid parameters) | 400 invalid_request |
| Not found | 404 | 404 not_found |
| Concurrency | 400 | Queued; 429 queue_full when the queue is full |
| Rate | Not documented as 429 | 429 rate_limited |
| Provider trouble | 503, 423 | 503 provider_capacity_exceeded or provider_not_configured |
After the submit
Sume's job error categories give the next action for failures that happen after submit: quota means add funds or lower request cost, validation means fix input, and auth means check the API key and workspace access. Failed jobs also carry retryability and retry-after seconds when they apply.
Porting pitfalls
A client that branches on 403 for money will mis-handle Sume. The reverse is also true: a Sume client that treats every 4xx as final will mis-handle a Higgsfield 400 for concurrency, which is retryable after waiting. Branch on the error code string where the API gives one, and on the status where it does not.
- Map Higgsfield
403to Sume402for the top-up path. - Do not retry a
402or422unchanged on either side. - Retry
503later on both, with the same idempotency key. - Use the Sume
request_idwhen you contact support.
Funding, then retry
For funding errors, the fix is the same on both: add funds, then retry with the same idempotency key so a retry cannot create a second paid job.
Sources
Related posts
More in Developers
- Higgsfield 423 and 503 model errors vs Sume provider capacity
Higgsfield returns 404, 423 or 503 for a model you cannot use now. Sume uses provider_not_configured and provider_capacity_exceeded. What to retry.
- Higgsfield cancel queued request: 202 or 400, and the Sume match
Higgsfield cancels only queued requests (202, else 400). Sume cancels a job before generation starts, or returns 409 job_generation_already_started.
- Higgsfield concurrency limit returns 400, not 429: Sume's answer
Higgsfield answers 400 at your concurrency cap and sends no Retry-After. Sume queues valid jobs and returns 429 queue_full only when the queue is full.
- Genjutsu missing from /v1/video-router/models: when it is listed
If higgsfield-genjutsu is not in GET /v1/video-router/models, Sume hides it when its provider is not configured. How to check, and what to use instead.
Written by Sume