spanda config validate runs structural and safety checks on the resolved configuration (after
all layers and fragments are merged).
| Code | Severity | Check |
|---|---|---|
fleet.missing |
warning | No [fleet] section |
fleet.empty |
warning | Fleet has no robots |
robot.no_compute |
error | Robot without compute node |
hardware.profile_unknown |
warning | Unknown hardware profile name |
hardware.profile_sensor_gap |
warning | Profile expects sensor not present |
hardware.profile_actuator_gap |
warning | Profile expects actuator not present |
provider.unknown |
error | Provider not in registry or config |
provider.missing |
warning | Device without provider |
device.port_conflict |
error | Same port assigned twice |
device.bus_conflict |
error | Same bus assigned twice |
compute.duplicate_serial |
error | Duplicate compute serial number |
device.firmware_missing |
warning | No firmware/version metadata |
safety.no_emergency_stop |
error | Actuator missing emergency_stop |
security.untrusted_actuator |
error | Untrusted device controls actuator |
security.identity_missing |
warning | Networked device without identity |
device.duplicate_ip |
error | Same IP assigned to multiple devices |
device.duplicate_mac |
error | Same MAC assigned to multiple devices |
device.duplicate_serial |
error | Same serial assigned to multiple devices |
device.ip_unreachable |
warning | IP probe failed (SPANDA_CONFIG_PROBE_NETWORK=1) |
device.protocol_provider_mismatch |
warning | Protocol unlikely for provider |
device.endpoint_missing |
warning | Network device without endpoint or IP |
device.insecure_endpoint |
warning | Endpoint uses insecure scheme |
device.remote_actuator_insecure |
error | Remote actuator without TLS/signature |
mapping.logical_ambiguous |
error | Logical name maps to multiple devices without redundancy |
device.redundant_missing_priority |
error | Redundant group missing unique failover priority |
device.redundant_group_singleton |
warning | Redundant group has only one member |
mapping.gap |
error/warning | Logical-to-physical mapping issue |
Providers are validated against:
[providers] entries in config fragmentsspanda-gps, spanda-lidar, spanda-canbus, …)Dependencies declared in merged config are collected for package loading. Full package resolution
still flows through spanda install and the lockfile.
When running readiness with --config:
spanda readiness patrol.sd --config spanda.toml
Config validation runs first. Errors block readiness evaluation. The hardware profile from the first
configured robot is used as the default --target when not specified.
[health.robots.<id>] policy appear in the config report under missing health
policies.[security.devices.<id>] identity entries.spanda config validate exits non-zero when any error-severity finding is present. Warnings do
not fail validation by default but appear in reports.