Troubleshooting
This page covers common issues, error messages, and debugging tips for Cerulion Core.Common Issues
Type doesn't implement Copy
Type doesn't implement Copy
Problem: Your struct doesn’t implement See the Serialization page for details on Copy types.
Copy, so it can’t be used with Cerulion Core’s automatic serialization.Solution: Ensure all fields are Copy types:Serialization failed
Serialization failed
Problem: Type has incompatible memory layout.Solution: Add
#[repr(C)] to ensure C-compatible layout:Generated file not found
Generated file not found
Problem: Generated code file path is incorrect.Solution: Use See the Code Generation page for details.
OUT_DIR environment variable:Schema parse error
Schema parse error
Problem: YAML syntax error in schema file.Solution: Validate YAML syntax:Common issues:
- Missing colons after field names
- Incorrect indentation
- Invalid type names
Type mismatch error
Type mismatch error
Problem: Multiple publishers/subscribers for the same topic use different message types.Solution: Ensure all publishers/subscribers for a topic use the same type:
No messages received
No messages received
Problem: Subscriber doesn’t receive messages.Possible causes:
- Publisher dropped before subscriber created
- Wrong topic name
- Network transport not enabled (for remote subscribers)
- Subscriber using wrong transport mode
High latency on local transport
High latency on local transport
Problem: Local communication is slower than expected.Possible causes:
- Message type is not
Copy - Message size is very large
- System is under heavy load
- Ensure message type implements
Copy - Reduce message size or batch messages
- Check system load and CPU usage
Network messages not arriving
Network messages not arriving
Problem: Network subscribers don’t receive messages.Possible causes:
- Network transport not enabled
- Network connectivity issues
- Subscriber not connected
- Firewall blocking Zenoh ports
MCAP file is empty
MCAP file is empty
Problem: MCAP recorder created but no messages logged.Solution: Keep recorder alive and ensure logging is enabled:
High CPU usage
High CPU usage
Problem: Cerulion Core uses too much CPU.Possible causes:
- Very high message rate
- Large message sizes
- Multiple background threads
- Reduce message rate if possible
- Reduce message size
- Use TopicManager to share sessions (reduces thread count)
Error Messages
”Type mismatch for topic ‘topic’”
Meaning: Multiple publishers/subscribers for the same topic use different message types. Solution: Ensure all publishers/subscribers for a topic use the same type. The first registration establishes the type.”Failed to create publisher”
Possible causes:- Topic name is invalid
- iceoryx2 initialization failed
- Zenoh session creation failed
”Failed to create subscriber”
Possible causes:- Topic name is invalid
- No publisher exists (for local transport)
- Network transport unavailable (for network-only mode)
Some(true) to force network transport.
”Serialization failed”
Meaning: Message type cannot be serialized. Possible causes:- Type doesn’t implement
Copy - Type has incompatible memory layout
- Type contains non-serializable fields (String, Vec, etc.)
Copy and has #[repr(C)] layout. See the Serialization page.
Debugging Tips
1. Enable Verbose Logging
Verbose logging shows detailed information about publisher/subscriber creation, message sending, and network operations.
2. Check Message Reception
3. Verify Transport Mode
4. Monitor Network Status
Network errors are logged but don’t propagate. Check application logs for network-related errors.
5. Profile Performance
Getting Help
If you’re still experiencing issues:- Check the documentation: Review relevant pages for your issue
- Review error messages: Error messages often contain helpful information
- Check system logs: Look for detailed error messages in application logs
- Verify installation: Ensure iceoryx2 and Zenoh are properly installed
- Test with simple example: Try the Quick Start example to verify basic functionality