Every set of readings A-REX receives gets a validation report: from a device platform, from your own software or from a logger file you upload. Valid readings are stored even when others in the same set are refused, and nothing is dropped silently.
How a report reads
The report starts with the counts: readings received, stored (or valid, for a check), refused, already recorded and warnings. Below, one row per kind of problem: whether the reading was refused, got a warning or a note, what happened in plain words, the rows or readings it names, how many readings it touched and how to fix it. The code at the end of the row opens its section here. A set with no readings at all is refused and nothing of it is kept.
Upload and check a logger file in Upload a logger file; the codes below are the same everywhere.
READING_PROFILE_UNKNOWN
Refused. The report says: “We don't know the profile ….”
- Why it matters: Readings can't be checked without their rules.
- How to fix it: Use one of the profiles listed in the guide.
READING_PROFILE_VERSION_RETIRED
Refused. The report says: “Profile … version … is no longer accepted.”
- Why it matters: Old rules are past their support window.
- How to fix it: Send version …; see the changelog for what changed.
READING_PROFILE_NOT_PINNED
Note. The report says: “… is not part of this delivery's agreed measurements; it was kept as extra.”
- Why it matters: The receiver did not agree to check it.
- How to fix it: Add the profile to the delivery, or ignore this note.
READING_PROFILE_NOT_APPLICABLE
Warning. The report says: “… is measured under …, which doesn't apply to …; it was kept as extra.”
- Why it matters: Each profile is meant for certain goods; readings for other goods are not checked against agreed rules.
- How to fix it: Pick a profile that applies to this product, or ignore if the extra reading is useful.
READING_FIELD_MISSING
Refused. The report says: “… is missing.”
- Why it matters: The profile requires it, and EPCIS and UNTP need it to describe the reading.
- How to fix it: Send …; for example: ….
READING_FIELD_RECOMMENDED_MISSING
Note. The report says: “… is not given.”
- Why it matters: It makes the reading easier to trust and to match.
- How to fix it: Add … when the device knows it.
READING_FIELD_UNKNOWN
Note. The report says: “… is not part of the readings rules and was ignored.”
- Why it matters: Unknown data is never stored.
- How to fix it: Remove it, or map it to a known field in the endpoint mapping.
READING_VALUE_NOT_NUMBER
Refused. The report says: “… must be a number; we received "…".”
- Why it matters: A value that is not a number can't be compared to a range.
- How to fix it: Send digits, with a dot for decimals.
READING_UNIT_UNKNOWN
Refused. The report says: “We don't recognize the unit "…" for ….”
- Why it matters: Without a known unit the value is ambiguous.
- How to fix it: Use a UN/CEFACT Rec 20 code: ….
READING_UNIT_WRONG_KIND
Refused. The report says: “… is not a unit of …, so it can't be used for ….”
- Why it matters: The value would be converted into nonsense.
- How to fix it: Use one of these units: ….
READING_OUT_OF_RANGE
Refused. The report says: “… … … is outside what a device can measure (… to …).”
- Why it matters: It is a sensor or mapping fault, not a measurement.
- How to fix it: Check the probe, the unit and the mapping.
READING_OUTSIDE_AGREED_RANGE
Note. The report says: “… … is outside the agreed range …–….”
- Why it matters: It is an excursion: it is shown on the chart and grouped into episodes.
- How to fix it: Nothing to fix in the data.
READING_PRECISION_EXCESS
Warning. The report says: “… has more decimals than we keep; it was rounded to ….”
- Why it matters: Storage keeps the precision set by the profile.
- How to fix it: Nothing to do, or round at the source.
READING_TIME_MISSING
Refused. The report says: “Time measured is missing.”
- Why it matters: A reading without a time can't be placed.
- How to fix it: Send the time the device measured, not the upload time.
READING_TIME_NO_ZONE
Refused. The report says: “Time measured … has no time zone.”
- Why it matters: The same clock time is hours apart across time zones.
- How to fix it: Add an offset (Z or -03:00), or set the time zone in the file template.
READING_TIME_IN_FUTURE
Refused. The report says: “Time measured is … min in the future.”
- Why it matters: The device clock or the time zone is wrong.
- How to fix it: Fix the device clock or the time zone.
READING_TIME_TOO_OLD
Refused. The report says: “Time measured is older than 7 days.”
- Why it matters: Late data can't be honestly added to the record within its time window.
- How to fix it: Upload the logger file to the delivery instead; it allows older data and is marked "Declared".
READING_TIME_OUTSIDE_DELIVERY
Warning. The report says: “This reading is from before pick-up or after settlement of delivery ….”
- Why it matters: It may belong to another trip.
- How to fix it: Check the device assignment; positions outside this window are not stored.
READING_DUPLICATE
Note. The report says: “Already recorded; not stored twice.”
- Why it matters: Retries and replays are expected.
- How to fix it: Nothing to fix.
READING_CONFLICT
Refused. The report says: “A different value was already recorded for this device and time.”
- Why it matters: Two values for one moment point to a mapping or device fault.
- How to fix it: Check the device ID and the sequence number; the first value stays.
READING_OUT_OF_ORDER
Note. The report says: “Arrived after later readings; placed by its time.”
- Why it matters: Buffered data often uploads late.
- How to fix it: Nothing to fix.
READING_DELIVERY_UNKNOWN
Refused. The report says: “We couldn't match this reading to a delivery.”
- Why it matters: Every reading belongs to a delivery.
- How to fix it: Send the delivery reference, the transport document, the container number or an assigned device.
READING_DELIVERY_CLOSED
Refused. The report says: “Delivery … is settled; it no longer takes readings.”
- Why it matters: The record is closed.
- How to fix it: Attach the file to the delivery as a document instead.
READING_DEVICE_UNKNOWN
Warning. The report says: “Device … is not registered; recorded as reported by ….”
- Why it matters: An unknown device lowers trust in the data.
- How to fix it: Register the device in Settings, Integrations, Readings, under Readings sources.
READING_DEVICE_NOT_ASSIGNED
Refused. The report says: “Device … is assigned to delivery …, not ….”
- Why it matters: It keeps two trips from being mixed.
- How to fix it: Change the device assignment or the delivery reference.
READING_POSITION_INVALID
Refused. The report says: “This position is not valid (…, …).”
- Why it matters: A position of 0, 0 or swapped values are a common fault.
- How to fix it: Send latitude first, in degrees (WGS-84).
READING_ACCURACY_LOW
Warning. The report says: “Position accuracy is … m, too coarse for arrival checks.”
- Why it matters: Arrival checks by area need … m or better.
- How to fix it: Prefer satellite (GNSS) positions over cell tower positions.
READING_PERSONAL_DATA_DROPPED
Warning. The report says: “… is about the driver and was not stored.”
- Why it matters: Speed, driver name and driving hours are never kept.
- How to fix it: Stop sending it.
READING_BATTERY_LOW
Note. The report says: “Battery at … %.”
- Why it matters: The feed may stop mid-trip.
- How to fix it: Charge or replace the battery before the next trip.
READING_GAP
Warning. The report says: “No readings from … for … (expected every …).”
- Why it matters: An unexplained gap weakens the temperature record.
- How to fix it: Check coverage; buffered data may still arrive within 7 days.
READING_CLOCK_SKEW
Warning. The report says: “…'s clock looks … min off.”
- Why it matters: Times may be shifted.
- How to fix it: Sync the device clock (NTP or GNSS time).
READING_LATE
Note. The report says: “Readings arrive … min after they are measured, on average.”
- Why it matters: Alerts come late.
- How to fix it: Shorten the transmit interval if alerts matter.
READING_BATCH_TOO_LARGE
Refused. The report says: “This request has … readings; the limit is ….”
- Why it matters: The limit keeps the receiver fair to every sender.
- How to fix it: Split the batch into smaller requests.
READING_FORMAT_INVALID
Refused. The report says: “This is not valid …: ….”
- Why it matters: Nothing could be read.
- How to fix it: Check the file or the body against the example in the guide.
READING_EPCIS_UNSUPPORTED
Warning. The report says: “EPCIS … is not read by these readings rules and was ignored.”
- Why it matters: Only the sensor readings in an EPCIS event count as readings.
- How to fix it: Use the EPCIS capture route for other events.
READING_COLUMN_UNMAPPED
Refused. The report says: “Column "…" is needed for … but isn't mapped.”
- Why it matters: The required field would be missing on every row.
- How to fix it: Map the column in the file template.
READING_ROW_MALFORMED
Refused. The report says: “Row … can't be read: ….”
- Why it matters: One bad row does not block the others.
- How to fix it: Fix or delete the row.
READING_RATE_LIMITED
Refused. The report says: “Too many readings from …; try again in … s.”
- Why it matters: The limit protects the receiving service.
- How to fix it: Slow down; nothing was lost on our side.
READING_PDF_LAYOUT_UNKNOWN
Warning. The report says: “We couldn't read this report, so nothing from it was stored.”
- Why it matters: The layout of this PDF is not one we know, and we never guess values from a report.
- How to fix it: Send the logger's CSV export instead, or ask us to add this report layout.