Error codes
Errors come with an HTTP status, a fixed code and a German text. Two cases have no code: invalid fields (422) and requests that are too large (413). Program against the code, the text can change.
On this page
Structure
In detail, an error with a code carries an object with code and message. Some carry more details in data, here the color the printer reports.
The text in message is German, even if you use Spooly in English.
{
"detail": {
"code": "andere_farbe",
"message": "Der Drucker meldet in diesem Slot eine andere Farbe als diese Spule. Trotzdem zuordnen?",
"data": {
"gemeldet": {
"farbe": "#E8E9DF",
"material": "PLA"
},
"spule": {
"farbe": "#1B1B1D"
}
}
}
}Invalid fields in the body or the query come back as 422 with a list in detail and no code. loc names the field, msg the reason. This text is English and follows the standard format of the platform. Program against loc and type here.
{
"detail": [
{
"type": "missing",
"loc": [
"body",
"grams"
],
"msg": "Field required",
"input": {}
}
]
}Spooly rejects a request over 64 KB before it reads it: 413 with a plain text in detail, also without a code. Limits
{
"detail": "Anfrage ist zu groß."
}All codes
| Status | Code | Meaning |
|---|---|---|
| 401 | invalid_ | Key missing, unknown or revoked, or the account is not active |
| 403 | api_ | The API is not enabled for this account |
| 403 | pro_ | Pro has expired. The key stays valid. |
| 403 | insufficient_ | The connection is not allowed to change data |
| 403 | key_ | The key does not fit the address: a spreadsheet key used against the API, another key used against the spreadsheet link, or at the Spoolman address a key that is not of type scale or Klipper printer (and the other way round) |
| 404 | not_ | Spool, location, slot, task or printer not found |
| 409 | slot_ | Slot autopilot is not active, slots can only be read |
| 409 | andere_ | The printer reports a different color. Repeat with confirm_. |
| 409 | anderer_ | The spool already has a different Bambu chip than the one in the slot. Is it a new roll? |
| 409 | archiviert | The spool is archived |
| 409 | gleichzeitig | The slot was changed at the same time. Try again. |
| 409 | tare_ | No empty-spool weight is stored for the spool |
| 409 | spool_ | The spool is in a running print |
| 409 | place_ | Another spool is already on this place |
| 409 | conflict | Any other conflict |
| 413 | (no code) | The request is larger than 64 KB |
| 422 | invalid_ | Invalid input |
| 422 | place_ | This place does not exist in the location (see places) |
| 422 | gross_ | The gross weight must be greater than the tare |
| 422 | above_ | The weight would be larger than the spool |
| 422 | invalid_ | The Idempotency-Key must be 1 to 128 visible ASCII characters |
| 422 | idempotency_ | Something different was already requested with this Idempotency-Key |
| 429 | fair_ | Daily limit reached |
| 429 | too_ | Too many simultaneous requests |
| 429 | change_, change_ and new_ | Change limit reached |
| 429 | too_ | Too many new keys in one hour |
| 500 | internal_ | That did not work. Try again later. |
In Home Assistant and with AIs
Home Assistant turns the codes into its own messages. You find them under troubleshooting. An AI gets the same codes and usually explains them to you itself.