-
Notifications
You must be signed in to change notification settings - Fork 1
Troubleshooting
- Run a build that triggers
build.rs (source) (
for example
cargo buildor./build.py release). - Ensure telemetry_config.json (source) is valid JSON.
- If you override the schema path, set
SEDSPRINTF_RS_SCHEMA_PATH. - If you use a board-local IPC overlay, also check
SEDSPRINTF_RS_IPC_SCHEMA_PATH.
All nodes must use the exact same telemetry_config.json (source) order and definitions. Mismatches cause decode errors or undefined behavior.
Symptoms:
- Invalid DataType/DataEndpoint errors.
- Packets decode into the wrong types.
Fix:
- Redeploy the same schema and regenerated bindings everywhere.
If you see TelemetryError::SizeMismatch:
- Check the schema definition for the message type.
- Ensure static payloads match exact size.
- Ensure dynamic payloads are a multiple of the element width.
String payloads must be valid UTF-8. Trailing NULs are ignored but invalid byte sequences will fail validation.
If a receiver was built without the compression feature, it cannot decode compressed payloads. Ensure all nodes share
the same feature set or disable compression everywhere.
Check:
- Router mode is
Relay(notSink). - Link-local-only endpoints stay on link-local/software-bus sides.
- Non-local endpoints depend on discovery state for selective remote routing.
- Your TX callback is installed (non-NULL) and returns OK.
If you see packets bouncing endlessly:
- Ensure your side TX callback does not immediately re-inject back into the same side.
- Confirm dedupe cache sizes are large enough for your traffic patterns.
Queues are bounded. If traffic is bursty:
- Increase
MAX_QUEUE_SIZEorQUEUE_GROW_STEP. - Process queues more frequently.
Bare-metal targets must provide telemetryMalloc, telemetryFree, and seds_error_msg.
If C system tests print warnings like "object file ... built for newer 'macOS' version than being linked":
- Ensure Rust staticlib and CMake link use the same deployment target.
- In this repo,
c-system-test/CMakeLists.txtpinsCMAKE_OSX_DEPLOYMENT_TARGETand forwards it into Rust builds. - If you maintain a custom CMake integration, set
CMAKE_OSX_DEPLOYMENT_TARGETexplicitly and keep it consistent.
- Ensure you built the extension:
./build.py pythonormaturin develop. ( build.py: source) - Verify you are using the same Python interpreter/venv used for the build.
- If the module loads but symbols are missing, rebuild after schema changes.