Codes and statuses
Every code and status ruumica prints, what it means, and what to do about it.
ruumica never fails silently. Every result that needs your attention carries a code in capital letters, such as GRID_ABSENT. This page explains each one. The list is checked against the program on every build, so a code you see is always here. Search for a code by its name, or link to it directly: GRID_ABSENT is at #grid-absent.
A finding has one of three severities:
| Severity | Effect |
|---|---|
| BLOCKING | Stops the export or command. Nothing is written until it is fixed. |
| WARNING | Recorded in the package and shown in the closeout book. The export goes ahead. |
| INFO | For your information. Recorded, no action needed. |
Offline work is reported differently: each change made in the field (an op) gets a status, sometimes with a reason. See Offline sync.
Coordinates and grids
| Code | Kind | Meaning | What to do |
|---|---|---|---|
CRS_PIPELINE_UNKNOWN |
BLOCKING | The project names a coordinate pipeline that is not in the pipeline registry used for the export. | Check the --registry folder (default geodesy/pipelines) and the project’s pipeline. See asbuilt export. |
CRS_GRID_ABSENT |
BLOCKING, or WARNING when --allow-grid-absent covers the pipeline |
A grid file the project’s pipeline needs, such as the Estonian geoid model, is not installed. Without it heights cannot be converted. | Install the grid. While Estonian projects wait for the licensed geoid, exports run with --allow-grid-absent 'ee.*' and say so. |
CRS_GRID_MISMATCH |
BLOCKING | An installed grid file is not the file the registry expects: its SHA-256 differs. | Replace it with the registered file. A different file would give different coordinates. |
CRS_GRID_HASH_PENDING |
BLOCKING | A grid file is installed, but the registry has not recorded its SHA-256 yet. | Record the hash in the registry. The geoid installation procedure does this. |
GEOJSON_WGS84_SKIPPED |
WARNING | The extra GeoJSON copy in WGS 84 (RFC 7946) was not written. The GeoJSON in the delivery coordinate system is complete. | Nothing, unless a recipient needs WGS 84. See Feature status. |
OK |
grid status (asbuilt crs verify) |
The grid file is installed and its SHA-256 matches the registry. | Nothing. |
ABSENT |
grid status (asbuilt crs verify) |
The grid file is not installed. | Install it, or run with --allow-grid-absent for that pipeline while you wait for it. |
MISMATCH |
grid status (asbuilt crs verify) |
The installed grid file’s SHA-256 differs from the registry. | As for CRS_GRID_MISMATCH. |
HASH_PENDING |
grid status (asbuilt crs verify) |
The grid file is installed, but its SHA-256 is not recorded yet. | As for CRS_GRID_HASH_PENDING. |
PASS |
test point status (asbuilt crs verify); trace verdict |
A test point transforms to its official coordinates within tolerance. For an OTDR trace: every event and the total loss are within the limits, judged in both directions. | Nothing. |
FAIL |
test point status (asbuilt crs verify); trace verdict |
A test point does not reach its official coordinates within tolerance. For an OTDR trace: at least one event or the total loss is over its limit. | For a test point: the pipeline or grid is wrong; do not deliver until it passes. For a trace: see the finding that names the event, such as OPTICAL_EVENT_OVER_LIMIT. |
GRID_ABSENT |
test point status (asbuilt crs verify); hold reason (sync) |
The grid this pipeline needs is not installed. In verification, the test point cannot be checked. In sync, an Estonian height from the field waits for the geoid model: the raw height is kept, and the position is never stored without height. | Install the grid. Held positions are then applied automatically. |
ERROR |
test point status (asbuilt crs verify) |
The test point could not be transformed at all; the message says why. | Read the message. Usually the pipeline definition or the PROJ installation is broken. |
OTDR traces
The limits are the project’s. The defaults are 0.30 dB per splice, 0.75 dB per connector and −35.0 dB reflectance.
| Code | Kind | Meaning | What to do |
|---|---|---|---|
PROVISIONAL |
trace verdict | The trace has been judged in one direction only. Losses measured from one end can be wrong by the difference between the two fibres at a splice. | Measure the same fibre from the other end at the same wavelength and ingest that trace; the pair is judged together. |
OPTICAL_UNIDIRECTIONAL |
WARNING | Only one direction of this fibre is on record, so its verdict stays PROVISIONAL. |
As for PROVISIONAL. |
OPTICAL_EVENT_OVER_LIMIT |
WARNING; the trace verdict is FAIL |
A splice or connector exceeds its limit, using the average of both directions. The message names the event, its distance and its losses. | Repair the splice or clean the connector, measure again in both directions, ingest the new traces. |
OPTICAL_EVENT_OVER_LIMIT_UNIDIRECTIONAL |
WARNING | An event exceeds its limit, judged from one direction only. It may pass once the other direction is measured. | Measure the other direction before repairing anything. |
OPTICAL_TOTAL_LOSS_OVER_LIMIT |
WARNING; the trace verdict is FAIL |
The end-to-end loss, averaged over both directions, exceeds the project’s limit. | Find the events that add the most loss; repair and measure again. |
OPTICAL_TOTAL_LOSS_OVER_LIMIT_UNIDIRECTIONAL |
WARNING | The end-to-end loss exceeds the limit, judged from one direction only. | Measure the other direction first. |
TRACE_FAIL |
WARNING (export) | A trace in the package fails the optical rules. It is reported in the closeout book with its findings. | Decide with the client whether to deliver with the failure or repair and measure again first. |
BIDIR_WAVELENGTH_MISMATCH |
BLOCKING (pairing) | The two traces were measured at different wavelengths, such as 1310 nm and 1550 nm, so they cannot be paired. | Pair traces of the same wavelength. |
BIDIR_LENGTH_MISMATCH |
BLOCKING (pairing) | The two traces show fibre lengths further apart than the tolerance (2 m plus 0.5 % of the length). They are not two directions of the same fibre. | Check the fibre number and direction of both files. |
BIDIR_NO_END_EVENT |
BLOCKING (pairing) | A trace has no end-of-fibre event, so the two directions cannot be lined up. | Measure again with an end-of-fibre event, or set it in the OTDR software before export. |
BIDIR_UNPAIRED_EVENT |
WARNING | An event in one direction has no counterpart in the other. It is judged on that direction alone. | Usually harmless (a ghost or a very small event). Look at it if it is near a splice. |
BIDIR_UNPAIRED_EVENT_OVER_LIMIT |
WARNING; the trace verdict is FAIL |
As BIDIR_UNPAIRED_EVENT, and the event’s loss exceeds its limit. |
Inspect the event’s position on the route; measure again if needed. |
SOR_BAD_GROUP_INDEX |
BLOCKING | The trace’s group index (IOR) is missing or outside 1.40–1.60, so distances cannot be computed. | Give the group index from the cable data sheet with --ior. See asbuilt sor ingest. |
IOR_OVERRIDDEN |
INFO | A group index given with --ior was used instead of the file’s. All distances are scaled accordingly. |
Nothing. It is recorded so the reader of the book knows. |
SOR_NO_KEYEVENTS |
WARNING | The file has no KeyEvents block (the OTDR’s event table), so there is nothing to judge. Reported by asbuilt sor inspect and whenever the trace is judged. |
Export the file again from the OTDR software with its event table. |
SOR_NO_END_EVENT |
WARNING | No end-of-fibre event (code letter E or D) is in the event table. | Check the trace; set the fibre end in the OTDR software if it was missed. |
SOR_NO_DATAPTS |
WARNING (asbuilt sor inspect) |
The file has no DataPts block, so it carries no trace curve. | The event table can still be judged. Export the file with its trace data if the curve is needed. |
SOR_CHECKSUM_MISMATCH |
WARNING (asbuilt sor inspect; an error with --strict-checksum) |
The file’s stored checksum matches neither known algorithm. Either the vendor writes it differently or the file is damaged. | Compare with the original file from the OTDR. If they are identical, it is the vendor’s format. |
SOR_NO_CKSUM_BLOCK |
WARNING (asbuilt sor inspect) |
The file has no checksum block, so damage cannot be detected. | Use the original file from the OTDR where possible. |
SOR_LANGUAGE_INVALID |
WARNING (asbuilt sor inspect) |
The language field of the file is not two letters. It is printed as found. | Nothing. It does not affect any measurement. |
SOR_TRAILING_BYTES |
INFO (asbuilt sor inspect) |
The file has bytes after its last declared block. They were ignored. | Nothing. |
SLACK_NO_GEOMETRY |
BLOCKING | The cable’s route has no span lengths, so the trace’s distances cannot be placed on it. | Record the cable route and its spans first. |
SLACK_FACTOR_OUT_OF_RANGE |
BLOCKING | The fibre is too long or too short for its route: the fitted length factor is outside 1.000–1.050. A slack loop is not recorded, or the route is wrong. | Record the missing slack loop, or correct the cable route. |
SLACK_RESIDUAL_OVER_TOLERANCE |
WARNING | The measured fibre end differs from the modelled end by more than the tolerance. Event positions on the map may be off by about as much. | Check slack loop lengths and lead lengths. |
Point clouds
Packages and exports
Offline sync
Every change made in the field app is an op. When it reaches the server, it gets one of six statuses. A status can change when later ops arrive. Only REJECTED is final.
Statuses
| Code | Kind | Meaning | What to do |
|---|---|---|---|
APPLIED |
op status | The change took effect as recorded. | Nothing. |
REBASED |
op status | The change took effect, but on a newer part of the network than the one you saw. Usually someone else split the span, and your change was moved to the right new span. The message names the old and the new span. | Nothing is lost. Check that the new span is the right one. |
CONFLICT |
op status | The change contradicts another change. It has no effect for now; its data is kept. | The office decides. Conflict review is not built yet (Feature status). |
PENDING |
op status | The change has no effect yet and waits. The reason is MISSING_REFERENCE or HELD. It is checked again with every new op. |
Usually nothing. See the reason. |
REJECTED |
op status | The change was refused for good. The reason code says why. | See the reason below. |
MOOT |
op status | A decision on a conflict that no longer exists. Recorded, with no effect. | Nothing. |
MISSING_REFERENCE |
pending reason | The change refers to something the server has not received yet, for example a node created on another device that is still offline. | Nothing. It applies by itself when the other change arrives. It never expires; asbuilt sync pending lists long waits. |
HELD |
pending reason | The server holds the change for the hold reason given with it. | See the hold reason. |
TRACE_SUMMARY_MISMATCH |
op finding | The verdict the field app showed for an OTDR trace differs from the server’s own evaluation of the same file. The server’s evaluation counts; the op’s status is unchanged. | Check the trace in the office. asbuilt sync pending lists these. |
Hold reasons
A held change is never stored half-done: a position is never stored without its height.
Conflict kinds
The op that arrives later in the agreed order is the one in conflict. Its data is always kept.