SAPIENT conformance rule catalogue
All 409 rules the SAPIENT test harness checks, by rule ID, with the message it prints when one fails. If the harness reported a finding against your node, look up its rule ID here.
This catalogue is for harness v1.0.0-beta.7, generated from the harness's own rule list for that release. To find a rule, search this page for its ID (Ctrl+F, or ⌘F on a Mac). Each rule ID links to its own row, so you can share a link to a single rule.
Reading a rule ID
Message rules check one message on its own, whichever role the harness is playing. Their IDs name the message type, the field and what is wrong with it: <message type>.<field>.<problem>. The problem is one of:
missingA mandatory field is absent.
invalidThe field is present but fails a format, range or enum check. For example, an ID that isn't a valid UUID or ULID, or a coordinate that isn't a finite number.
malformedThe field is present but structurally broken, mainly a timestamp whose nanoseconds are out of range.
emptyA list or string is present but empty where at least one entry is required.
Nested fields repeat the path, so alert.location.x.missing means an Alert's location has no x-coordinate. Session rules start with session. and cover what no single message shows: the order messages arrive in, whether acknowledgements match what was sent, reporting intervals, and whether reports agree with what the node registered.
Messages are quoted exactly as the harness prints them. Text in ‹angle quotes› is filled in from the actual message, such as a task ID or a time in seconds.
Message rules (384)
SapientMessage (5)
The wrapper around every message: node ID, timestamp and content.
| Rule ID | Harness message |
|---|---|
sapient_message. | Content must be specified in sapient message. |
sapient_message. | A valid UUID v4 must be used for a destination ID in sapient message. |
sapient_message. | A valid UUID v4 must be used for a node ID in sapient message. |
sapient_message. | Timestamp is malformed in sapient message. |
sapient_message. | Timestamp must be specified in sapient message. |
Registration (101)
| Rule ID | Harness message |
|---|---|
registration. | Behaviour definition type must be specified. |
registration. | Behaviour filter definition type must be specified. |
registration. | Capability category must be specified in registration. |
registration. | Capabilities must be specified in registration. |
registration. | Capability type must be specified in registration. |
registration. | Class definition type must be specified. |
registration. | Class filter definition type must be specified. |
registration. | Command completion time must be specified. |
registration. | Time Units must be specified. |
registration. | Duration value must be a finite number 0 or greater. |
registration. | Duration value must be provided. |
registration. | Command type must be specified. |
registration. | Command units must be specified. |
registration. | Configuration data must be specified in registration. |
registration. | Configuration data manufacturer must be specified. |
registration. | Configuration data model must be specified. |
registration. | A valid UUID v4 must be used for a dependent node ID in registration. |
registration. | Confidence definition is not a valid option in detection class definition. |
registration. | Location type must be specified in detection definition. |
registration. | Detection report category must be specified. |
registration. | Detection report type must be specified. |
registration. | Detection report units must be specified. |
registration. | East/north rate units must be specified in velocity type. |
registration. | Up rate units is not a valid option in velocity type. |
registration. | Extension subclass name must be specified. |
registration. | Extension subclass namespace must be specified. |
registration. | Filter parameter operators must be specified, and each must be a valid option. |
registration. | Filter parameter name must be specified. |
registration. | Geometric error type must be specified. |
registration. | Geometric error units must be specified. |
registration. | Geometric error variation type must be specified. |
registration. | ICD version specified in registration is not a valid option. |
registration. | No ICD version specified in registration message |
registration. | Datum must not be unspecified (0) in location type. |
registration. | Datum must be specified in location type. |
registration. | Units are not a valid option in location type. |
registration. | Units must be specified in location type. |
registration. | Mode definition must be specified in registration. |
registration. | Mode names must be unique so a mode_change Task can address each unambiguously. |
registration. | Mode name must be specified in mode definition. |
registration. | Mode type must be specified. |
registration. | Settle time must be specified in mode definition. |
registration. | Time Units must be specified. |
registration. | Duration value must be a finite number 0 or greater. |
registration. | Duration value must be provided. |
registration. | Mode parameter type must be specified. |
registration. | Mode parameter value must be specified. |
registration. | Node type must be specified in node definition. |
registration. | Node type must be specified in node definition. |
registration. | Performance value type must be specified. |
registration. | Performance value unit value must be specified. |
registration. | Performance value units must be specified. |
registration. | Region area must be specified in region definition. |
registration. | Region type must be specified in region definition. |
registration. | Region type is not a valid option in region definition. |
registration. | Time Units must be specified. |
registration. | Duration value must be a finite number 0 or greater. |
registration. | Duration value must be provided. |
registration. | Value must be a finite number in range bearing. |
registration. | Value must be a finite number in range bearing. |
registration. | Coordinate system must be specified in range bearing. |
registration. | Datum must be specified in range bearing. |
registration. | Value must be a finite number in range bearing. |
registration. | Value must be a finite number in range bearing. |
registration. | Value must be a finite number in range bearing. |
registration. | Value must be a finite number in range bearing. |
registration. | Coordinate system must be specified in location. |
registration. | Datum must be specified in location. |
registration. | At least one location must be specified in location list. |
registration. | Coordinate must be a finite number in location. |
registration. | X-coordinate must be specified in location. |
registration. | Coordinate must be a finite number in location. |
registration. | Coordinate must be a finite number in location. |
registration. | Y-coordinate must be specified in location. |
registration. | Coordinate must be a finite number in location. |
registration. | Coordinate must be a finite number in location. |
registration. | Coordinate must be a finite number in location. |
registration. | Location or range-bearing must be specified in reporting region. |
registration. | Range must be a finite number 0 or greater in range bearing. |
registration. | Range must be a finite number 0 or greater in range bearing. |
registration. | Value must be a finite number in range bearing. |
registration. | Value must be a finite number in range bearing. |
registration. | Status definition must be specified in registration. |
registration. | Status interval must be specified in status definition. |
registration. | Time Units must be specified. |
registration. | Duration value must be a finite number 0 or greater. |
registration. | Duration value must be provided. |
registration. | Status report category must be specified in registration. |
registration. | Status report type must be specified in registration. |
registration. | Sub class level must be specified. |
registration. | Sub class type must be specified. |
registration. | Sub class filter definition level must be specified. |
registration. | Sub class filter definition type must be specified. |
registration. | Concurrent tasks must be 0 or greater. |
registration. | Concurrent tasks must be specified in task definition. |
registration. | Task definition must be populated |
registration. | Region definition must be specified in task definition. |
registration. | Taxonomy dock class must be specified. |
registration. | Taxonomy dock class namespace must be specified. |
registration. | Datum must be specified in velocity type. |
registration. | Velocity units must be specified in velocity type. |
RegistrationAck (1)
| Rule ID | Harness message |
|---|---|
registration_ack. | Acceptance must be specified in a registration ack message. |
StatusReport (92)
| Rule ID | Harness message |
|---|---|
status_report. | A valid ULID must be used for an active task ID in a status report. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Coordinate system must be specified in range bearing. |
status_report. | Datum must be specified in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Coordinate system must be specified in location. |
status_report. | Datum must be specified in location. |
status_report. | At least one location must be specified in location list. |
status_report. | Coordinate must be a finite number in location. |
status_report. | X-coordinate must be specified in location. |
status_report. | Coordinate must be a finite number in location. |
status_report. | Coordinate must be a finite number in location. |
status_report. | Y-coordinate must be specified in location. |
status_report. | Coordinate must be a finite number in location. |
status_report. | Coordinate must be a finite number in location. |
status_report. | Coordinate must be a finite number in location. |
status_report. | Location or range-bearing must be specified in status report. |
status_report. | Range must be a finite number 0 or greater in range bearing. |
status_report. | Range must be a finite number 0 or greater in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Coordinate system must be specified in range bearing. |
status_report. | Datum must be specified in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Coordinate system must be specified in location. |
status_report. | Datum must be specified in location. |
status_report. | At least one location must be specified in location list. |
status_report. | Coordinate must be a finite number in location. |
status_report. | X-coordinate must be specified in location. |
status_report. | Coordinate must be a finite number in location. |
status_report. | Coordinate must be a finite number in location. |
status_report. | Y-coordinate must be specified in location. |
status_report. | Coordinate must be a finite number in location. |
status_report. | Coordinate must be a finite number in location. |
status_report. | Coordinate must be a finite number in location. |
status_report. | Location or range-bearing must be specified in status report. |
status_report. | Range must be a finite number 0 or greater in range bearing. |
status_report. | Range must be a finite number 0 or greater in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Info must be specified in status report. |
status_report. | Mode must be specified in status report. |
status_report. | Coordinate system must be specified in location. |
status_report. | Datum must be specified in location. |
status_report. | Coordinate must be a finite number in location. |
status_report. | X-coordinate must be specified in location. |
status_report. | Coordinate must be a finite number in location. |
status_report. | Coordinate must be a finite number in location. |
status_report. | Y-coordinate must be specified in location. |
status_report. | Coordinate must be a finite number in location. |
status_report. | Coordinate must be a finite number in location. |
status_report. | Coordinate must be a finite number in location. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Coordinate system must be specified in range bearing. |
status_report. | Datum must be specified in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Coordinate system must be specified in location. |
status_report. | Datum must be specified in location. |
status_report. | At least one location must be specified in location list. |
status_report. | Coordinate must be a finite number in location. |
status_report. | X-coordinate must be specified in location. |
status_report. | Coordinate must be a finite number in location. |
status_report. | Coordinate must be a finite number in location. |
status_report. | Y-coordinate must be specified in location. |
status_report. | Coordinate must be a finite number in location. |
status_report. | Coordinate must be a finite number in location. |
status_report. | Coordinate must be a finite number in location. |
status_report. | Location or range-bearing must be specified in status report. |
status_report. | Range must be a finite number 0 or greater in range bearing. |
status_report. | Range must be a finite number 0 or greater in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Value must be a finite number in range bearing. |
status_report. | Power level must be between 0 and 100 in status report. |
status_report. | Power source is not a valid option in status report. |
status_report. | Power status is not a valid option in status report. |
status_report. | A valid ULID must be used for a report ID in a status report. |
status_report. | Status level is not a valid option in status report. |
status_report. | Status type must be specified in status report. |
status_report. | System must be specified in status report. |
DetectionReport (61)
| Rule ID | Harness message |
|---|---|
detection_report. | Association type is not a valid option in associated detection. |
detection_report. | A valid UUID v4 must be used for a node ID in a detection report associated detection. |
detection_report. | A valid ULID must be used for an object ID in a detection report associated detection. |
detection_report. | Associated file type must be specified in a detection report. |
detection_report. | Associated file URL must be specified in a detection report. |
detection_report. | Behaviour confidence must be between 0.0 and 1.0 in detection report. |
detection_report. | Behaviour type must be specified in detection report. |
detection_report. | Classification confidence must be between 0.0 and 1.0 in detection report. |
detection_report. | Classification sub class level must be specified in detection report. |
detection_report. | Classification sub class type must be specified in detection report. |
detection_report. | Classification type must be specified in detection report. |
detection_report. | A valid UUID v4 must be used for a node ID in a derived detection. |
detection_report. | A valid ULID must be used for an object ID in a derived detection. |
detection_report. | Derived detection timestamp is malformed in detection report. |
detection_report. | Derived detection timestamp must be specified in detection report. |
detection_report. | Detection confidence must be between 0.0 and 1.0 in detection report. |
detection_report. | ENU velocity east rate must be specified in detection report. |
detection_report. | ENU velocity north rate must be specified in detection report. |
detection_report. | Value must be a finite number in range bearing. |
detection_report. | Value must be a finite number in range bearing. |
detection_report. | Coordinate system must be specified in location. / Coordinate system must be specified in range bearing. |
detection_report. | Datum must be specified in location. / Datum must be specified in range bearing. |
detection_report. | Value must be a finite number in range bearing. |
detection_report. | Value must be a finite number in range bearing. |
detection_report. | Location or range-bearing must be specified in detection report. |
detection_report. | Range must be a finite number 0 or greater in range bearing. |
detection_report. | Range must be a finite number 0 or greater in range bearing. |
detection_report. | Coordinate must be a finite number in location. |
detection_report. | X-coordinate must be specified in location. |
detection_report. | Coordinate must be a finite number in location. |
detection_report. | Coordinate must be a finite number in location. |
detection_report. | Y-coordinate must be specified in location. |
detection_report. | Coordinate must be a finite number in location. |
detection_report. | Coordinate must be a finite number in location. |
detection_report. | Coordinate must be a finite number in location. |
detection_report. | A valid ULID must be used for an object ID in a detection report. |
detection_report. | Track object info type must be specified in detection report. |
detection_report. | Track object info value must be specified in detection report. |
detection_report. | Value must be a finite number in range bearing. |
detection_report. | Value must be a finite number in range bearing. |
detection_report. | Coordinate system must be specified in location. / Coordinate system must be specified in range bearing. |
detection_report. | Datum must be specified in location. / Datum must be specified in range bearing. |
detection_report. | Value must be a finite number in range bearing. |
detection_report. | Value must be a finite number in range bearing. |
detection_report. | Predicted location or range-bearing must be specified in detection report. |
detection_report. | Range must be a finite number 0 or greater in range bearing. |
detection_report. | Range must be a finite number 0 or greater in range bearing. |
detection_report. | Coordinate must be a finite number in location. |
detection_report. | X-coordinate must be specified in location. |
detection_report. | Coordinate must be a finite number in location. |
detection_report. | Coordinate must be a finite number in location. |
detection_report. | Y-coordinate must be specified in location. |
detection_report. | Coordinate must be a finite number in location. |
detection_report. | Coordinate must be a finite number in location. |
detection_report. | Coordinate must be a finite number in location. |
detection_report. | A valid ULID must be used for a report ID in a detection report. |
detection_report. | Signal amplitude must be specified in detection report. |
detection_report. | Signal centre frequency must be specified in detection report. |
detection_report. | A valid ULID must be used for a task ID in a detection report. |
detection_report. | Track object info type must be specified in detection report. |
detection_report. | Track object info value must be specified in detection report. |
Task (85)
| Rule ID | Harness message |
|---|---|
task. | Parameter must be specified in behaviour filter. |
task. | Parameter name must be specified. |
task. | Parameter operator must be specified. |
task. | Parameter value must be a finite number. |
task. | Parameter value must be specified. |
task. | Parameter must be specified in class filter. |
task. | Parameter name must be specified. |
task. | Parameter operator must be specified. |
task. | Parameter value must be a finite number. |
task. | Parameter value must be specified. |
task. | Type must be specified in class filter. |
task. | Coordinate system must be specified in location. |
task. | Datum must be specified in location. |
task. | At least one location must be specified in location list. |
task. | Coordinate must be a finite number in location. |
task. | X-coordinate must be specified in location. |
task. | Coordinate must be a finite number in location. |
task. | Coordinate must be a finite number in location. |
task. | Y-coordinate must be specified in location. |
task. | Coordinate must be a finite number in location. |
task. | Coordinate must be a finite number in location. |
task. | Coordinate must be a finite number in location. |
task. | Value must be a finite number in range bearing. |
task. | Value must be a finite number in range bearing. |
task. | Coordinate system must be specified in range bearing. |
task. | Datum must be specified in range bearing. |
task. | Value must be a finite number in range bearing. |
task. | Value must be a finite number in range bearing. |
task. | Value must be a finite number in range bearing. |
task. | Value must be a finite number in range bearing. |
task. | Coordinate system must be specified in location. |
task. | Datum must be specified in location. |
task. | At least one location must be specified in location list. |
task. | Coordinate must be a finite number in location. |
task. | X-coordinate must be specified in location. |
task. | Coordinate must be a finite number in location. |
task. | Coordinate must be a finite number in location. |
task. | Y-coordinate must be specified in location. |
task. | Coordinate must be a finite number in location. |
task. | Coordinate must be a finite number in location. |
task. | Coordinate must be a finite number in location. |
task. | Location or range-bearing must be specified in task message. |
task. | Range must be a finite number 0 or greater in range bearing. |
task. | Range must be a finite number 0 or greater in range bearing. |
task. | Value must be a finite number in range bearing. |
task. | Value must be a finite number in range bearing. |
task. | Task command must be specified. |
task. | Task threshold must be specified. |
task. | Task command must be populated. |
task. | Control must be specified in a task message. |
task. | A valid ULID must be used for a follow object ID in a follow object message. |
task. | Value must be a finite number in range bearing. |
task. | Value must be a finite number in range bearing. |
task. | Coordinate system must be specified in range bearing. |
task. | Datum must be specified in range bearing. |
task. | Value must be a finite number in range bearing. |
task. | Value must be a finite number in range bearing. |
task. | Value must be a finite number in range bearing. |
task. | Value must be a finite number in range bearing. |
task. | Coordinate system must be specified in location. |
task. | Datum must be specified in location. |
task. | At least one location must be specified in location list. |
task. | Coordinate must be a finite number in location. |
task. | X-coordinate must be specified in location. |
task. | Coordinate must be a finite number in location. |
task. | Coordinate must be a finite number in location. |
task. | Y-coordinate must be specified in location. |
task. | Coordinate must be a finite number in location. |
task. | Coordinate must be a finite number in location. |
task. | Coordinate must be a finite number in location. |
task. | Region area must be specified in task message. / Location or range-bearing must be specified in task message. |
task. | Range must be a finite number 0 or greater in range bearing. |
task. | Range must be a finite number 0 or greater in range bearing. |
task. | Value must be a finite number in range bearing. |
task. | Value must be a finite number in range bearing. |
task. | A valid ULID must be used for a region ID in a task message. |
task. | Region name must be specified in task message. |
task. | Region type must be specified in task message. |
task. | Parameter must be specified in sub class filter. |
task. | Parameter name must be specified. |
task. | Parameter operator must be specified. |
task. | Parameter value must be a finite number. |
task. | Parameter value must be specified. |
task. | Type must be specified in sub class filter. |
task. | A valid ULID must be used for a task ID in a task message. |
TaskAck (4)
| Rule ID | Harness message |
|---|---|
task_ack. | Associated file type must be specified in a task ack message. |
task_ack. | Associated file URL must be specified in a task ack message. |
task_ack. | A valid ULID must be used for a task ID in a task ack message. |
task_ack. | Task status must be specified in a task ack message. |
Alert (30)
| Rule ID | Harness message |
|---|---|
alert. | A valid ULID must be used for an alert ID in an alert message. |
alert. | Alert type is not a valid option in an alert message. |
alert. | Association type is not a valid option in associated detection. |
alert. | A valid UUID v4 must be used for a node ID in an alert associated detection. |
alert. | A valid ULID must be used for an object ID in an alert associated detection. |
alert. | Associated file type must be specified in an alert message. |
alert. | Associated file URL must be specified in an alert message. |
alert. | Alert confidence must be between 0.0 and 1.0. |
alert. | Coordinate system must be specified in location. |
alert. | Datum must be specified in location. |
alert. | Coordinate must be a finite number in location. |
alert. | X-coordinate must be specified in location. |
alert. | Coordinate must be a finite number in location. |
alert. | Coordinate must be a finite number in location. |
alert. | Y-coordinate must be specified in location. |
alert. | Coordinate must be a finite number in location. |
alert. | Coordinate must be a finite number in location. |
alert. | Coordinate must be a finite number in location. |
alert. | Alert priority is not a valid option in an alert message. |
alert. | Value must be a finite number in range bearing. |
alert. | Value must be a finite number in range bearing. |
alert. | Coordinate system must be specified in range bearing. |
alert. | Datum must be specified in range bearing. |
alert. | Value must be a finite number in range bearing. |
alert. | Value must be a finite number in range bearing. |
alert. | Range must be a finite number 0 or greater in range bearing. |
alert. | Range must be a finite number 0 or greater in range bearing. |
alert. | Alert ranking must be between 0.0 and 1.0. |
alert. | A valid ULID must be used for a region ID in an alert message. |
alert. | Alert status is not a valid option in an alert message. |
AlertAck (2)
| Rule ID | Harness message |
|---|---|
alert_ack. | Alert status must be specified in an alert ack message. |
alert_ack. | A valid ULID must be used for an alert ID in an alert ack message. |
Error (3)
| Rule ID | Harness message |
|---|---|
error. | Error must contain a populated error message. |
error. | Error must contain a populated packet. |
error. | Error must contain a populated packet. |
Session rules
A few rules appear under both roles. In the Fusion Node tests, the harness also reports on its own Registration where the scenario it was given is at fault; those messages say so.
Session rules when testing an Edge Node
Raised while the harness plays the Fusion Node (--role fusion) and your Edge Node connects to it.
| Rule ID | Harness message |
|---|---|
sapient_message. | Content must be specified in sapient message. |
session. | DetectionReport's location coordinate system/datum does not match any detection_definition.location_type the active mode (‹…›) declared. |
session. | DetectionReport classifies the object as ‹reported type›, which the active mode (‹…›) never declared in its detection_class_definition. |
session. | DetectionReport reports sub-class ‹sub type› under ‹ancestry›, which the active mode (‹mode name›) never declared there. |
session. | received bytes that don't decode as a SapientMessage: ‹err› |
session. | Peer sent an Error message about a packet it received: ‹…› |
session. | Registration declares no mode with mode_type MODE_TYPE_DEFAULT and no MODE_TYPE_PERMANENT mode named "default"; falling back to the first declared MODE_TYPE_PERMANENT mode (‹…›) as the initial active mode. Declare MODE_TYPE_DEFAULT explicitly, or name a Permanent mode "Default", to avoid this warning. |
session. | Registration declares no mode with mode_type MODE_TYPE_DEFAULT; using the MODE_TYPE_PERMANENT mode named ‹…› as the initial active mode, matching the legacy Fusion Node convention MODE_TYPE_DEFAULT was introduced to replace. Declare MODE_TYPE_DEFAULT explicitly to avoid this warning. |
session. | Registration declares ‹count› modes with mode_type MODE_TYPE_DEFAULT; exactly one is required. |
session. | Registration must declare either a mode with mode_type MODE_TYPE_DEFAULT, or (for backward compatibility) at least one mode with mode_type MODE_TYPE_PERMANENT, so the session has a starting mode. |
session. | Received a ‹message type› before a successful Registration/RegistrationAck handshake; Registration must always come first. |
session. | First StatusReport arrived ‹elapsed seconds›s after Registration, exceeding the allowed ‹…› declared intervals (‹allowed seconds›s of ‹declared seconds›s each). |
session. | StatusReport arrived ‹elapsed seconds›s after the previous one, exceeding the declared interval of ‹declared seconds›s by more than the ‹…›% tolerance. |
session. | StatusReport declares mode ‹reported mode›, but the session's tracked active mode (from Registration/mode_change tasks) is ‹…›. |
session. | StatusReport's timestamp is ‹seconds before›s before ‹context›'s timestamp; the Edge Node's reported time must not go backwards. |
session. | Issued an already tracked task ID ‹task id›; existing lifecycle retained. |
session. | A Task was issued before any Edge Node had registered on this session. |
session. | Issued a mode_change task targeting mode ‹target mode name›, which isn't declared anywhere in the registration's mode_definition list. |
session. | No outstanding task matches TaskAck task_id ‹task id›. |
session. | Repeated ‹status› acknowledgement for task ‹task id›; state unchanged. |
session. | Task ‹task id› cannot transition from ‹…› to ‹status› under the harness lifecycle policy. |
session. | Received a message type the Fusion Node role never expects as inbound traffic (e.g. Task, AlertAck, RegistrationAck are Fusion-to-Edge Node messages). |
Session rules when testing a Fusion Node
Raised while the harness plays the Edge Node (--role edge) and connects to your Fusion Node.
| Rule ID | Harness message |
|---|---|
sapient_message. | Content must be specified in sapient message. |
session. | AlertAck references alert_id ‹alert id›, which doesn't match any Alert this session sent that's still awaiting acknowledgement. |
session. | received bytes that don't decode as a SapientMessage: ‹err› |
session. | Peer sent an Error message about a packet it received: ‹…› |
session. | Our own Registration declares no mode with mode_type MODE_TYPE_DEFAULT and no MODE_TYPE_PERMANENT mode named "default"; falling back to the first declared MODE_TYPE_PERMANENT mode (‹…›) as the initial active mode. |
session. | Our own Registration declares no mode with mode_type MODE_TYPE_DEFAULT; using the MODE_TYPE_PERMANENT mode named ‹…› as the initial active mode, matching the legacy Fusion Node convention MODE_TYPE_DEFAULT was introduced to replace. |
session. | Our own Registration declared ‹count› modes with mode_type MODE_TYPE_DEFAULT; exactly one is required. This is a harness/test scenario bug (the Fusion Node already accepted it), not something the peer did wrong. |
session. | Our own Registration declared no mode with mode_type MODE_TYPE_DEFAULT and no mode with mode_type MODE_TYPE_PERMANENT to fall back to. This is a harness/test scenario bug (the Fusion Node already accepted it), not something the peer did wrong. |
session. | Fusion Node rejected our Registration: ‹…› |
session. | register() was called again while a Registration was already outstanding or accepted; this session's own Registration should only be sent once (re-registration is a legitimate protocol event, but the harness itself choosing to send a second one mid-test is almost always a scenario bug, not something to encode here). |
session. | Received a ‹message type› before our Registration was accepted; the Fusion Node shouldn't send this yet. |
session. | Received a RegistrationAck before this session ever sent a Registration. |
session. | Fusion Node issued a mode_change task targeting mode ‹target mode name›, which we never declared in our own Registration's mode_definition list. |
session. | Received an unprompted RegistrationAck while already registered; expected at most one per Registration sent. |
If a rule looks wrong
The harness is an independent reading of BSI Flex 335. Where the two disagree, the standard wins: please report the discrepancy, quoting the rule ID and the clause of the standard.