Skip to main content

Module troubleshooting

Module troubleshooting 

Source
Expand description

§Troubleshooting

§Message too large / truncated

Messages pass through multiple buffer layers. A message must fit every layer to be delivered intact:

LayerEnv varPosix default
DefragmentationZPICO_FRAG_MAX_SIZE65536
Batch sizeZPICO_BATCH_UNICAST_SIZE65536
Shim bufferZPICO_SUBSCRIBER_BUFFER_SIZE1024
User receive buffer— (const generic)1024

For large messages, increase the transport limits (set before cargo build) and size the per-entity buffer via the builder’s .rx_buffer::<N>():

// 4 KB receive buffer
executor.node_mut(node).subscription("/topic").typed::<MyMsg>()
    .rx_buffer::<4096>().build(|msg| { ... })?;

§zenoh version mismatch

zenoh-pico and zenohd must be the same version (1.6.2). Symptoms: z_publisher_put failed: -100 (_Z_ERR_TRANSPORT_TX_FAILED) followed by -73 (_Z_ERR_SESSION_CLOSED).

Build zenohd from the pinned submodule (just build-zenohd) or install the matching version.

§Build issues

  • Submodule not found — run git submodule update --init --recursive
  • CMake cache stale (changed env vars not taking effect) — run cargo clean -p zpico-sys then rebuild

§zenoh-pico error codes

CodeNameMeaning
-3_Z_ERR_TRANSPORT_OPEN_FAILEDCannot connect to router
-73_Z_ERR_SESSION_CLOSEDSession closed after failure
-78_Z_ERR_SYSTEM_OUT_OF_MEMORYAllocation failed
-100_Z_ERR_TRANSPORT_TX_FAILEDTransport transmission failed
-128_Z_ERR_GENERICGeneric error