Skip to main content
A failed call answers a status code and an error code. Match on the error code: it is a fixed string. The message is human text and can change.
Some errors add fields before ok. A station_mismatch carries expected and station, see Station safety. A refused output command carries output_id, slot, action and the player’s ack. A refused camera command carries camera, angle, action and Camera Assist’s ack.

Status codes

A path the Core does not know answers 404 with an empty body. A POST to a read route answers 405.

Retrying

  • 503 not_ready and 409 station_changing are temporary. Retry after a second or two.
  • 504 timeout means the Core did not see the result in time. Read the state before you send the action again. With explicit routes like /on and /onair a second call is safe: an action that is already in effect does nothing.
  • Every other error needs a change in the call or in the settings.

Legacy routes

The legacy routes keep Core v1’s bodies:
  • 401 answers the text Unauthorized, with the same WWW-Authenticate header.
  • 403 answers the text Forbidden.
  • A refused control route answers the current state as text with the status of its error code, for example 503 while the Core starts.