Ingest error codes#
Cloud Hosted
When a device sends a reading, BrewGraph answers with an HTTP status code.
200 means the reading was accepted. Anything else means it was turned away
and nothing was stored. This page explains each code, the likely cause, and
what to do. It applies to every device that sends readings to
https://ingest.brewgraph.com, including iSpindel, Gravitymon, the
Gravitymon Gateway, Tilt through TiltBridge, and RAPT Pill.
What the codes mean#
Code |
Likely cause |
What to do |
|---|---|---|
|
The reading was accepted. |
Nothing. If the batch chart is still empty, check that the device is assigned to the batch. |
|
The token is missing or BrewGraph does not recognise it. Typical reasons: a typo, a token that was rotated, or a token pasted with extra spaces. For KegMon, the token belongs to a tap that is not registered, or the tap has no active vessel or batch. |
Compare the token in the device’s configuration with the one on file. If you lost it, rotate it and paste the new one into the device (see Device Tokens). For KegMon, register the tap and assign an active vessel with a batch. |
|
The feature for this device type or data type is switched off for your account. |
The ingestion log shows |
|
The URL does not exist. This is usually a mistyped path. |
Use the exact address BrewGraph shows for the device, for example
|
|
A KegMon pour event conflicted with one already recorded. |
Normally nothing; the device does not need to resend it. |
|
The request arrived but a value cannot be stored: the body cannot be read, a required field is missing, a number is not a number, or a unit is not one of the allowed values (for example a pressure unit other than kPa, bar or psi). |
Open the ingestion log. The detail names the field. Fix that setting on the device, such as the unit or the gravity format. |
|
Readings arrive more often than your account’s reporting interval, or
the measurement budget is used up. The log shows
|
Increase the sending interval on the device so it is at least as long
as the interval for your account. Wait for the |
|
The request did not reach BrewGraph. The most common reason is the
wrong host: devices must send to |
Check the host in the device’s configuration. If it is correct, wait a few minutes and try again. |
A reading that is accepted but dropped (for example when you have reached your
batch limit and a new batch would be needed) still returns 200, so the
device does not keep retrying. Those drops show up as batch_quota_exhausted
in the ingestion log and as a notification.
Find out why a reading was refused#
Open Settings and use these two tools.
- Ingestion log
Shows the 15 newest requests from your devices that BrewGraph turned away, with the reason, device, and detail. It names the field for a
422. Each device writes at most one row per reason in 15 minutes, so a device that keeps failing does not flood the list. Download saves the log as a JSON file.Requests with a token BrewGraph does not recognise are never shown to members, and neither are requests with no token. If a device fails with
401and nothing appears in the log, check the token first.- Payload capture
Shows what a device actually sends. Point the device at
https://ingest.brewgraph.com/api/ingest/test, orhttps://ingest.brewgraph.com/api/ingest/test/<token>if the device cannot send a token any other way. The 20 newest captures are kept for 7 days and the token is masked.
Never paste a real token into a screenshot, issue report or forum post. See Device Tokens.