Skip to content

Known Issues & Limitations

Current limitations and known issues in Conduit.

Privacy & Policy Constraints

Background GPS Tracking Not Supported

Status: By design (privacy policy)

Reason: Apple requires "Always" location permission for background GPS tracking, which conflicts with our privacy-first approach.

Current Behavior: - GPS data available while app is active (foreground) - GPS stops when app enters background

Workaround: - Keep app in foreground during GPS data collection - Use background processing mode with other sensors

Future: No plans to change (privacy policy constraint)


Platform Limitations

visionOS: No GPS Sensor

Status: Hardware limitation

Reason: Apple Vision Pro is designed for indoor use without GPS hardware.

Workaround: - Use WiFi positioning if available - Pair with iPhone for GPS data - Use visual odometry from cameras

visionOS: Hand/Eye Tracking Not Implemented

Status: Feature not yet implemented

Planned: Future update will add: - Hand tracking → sensor_msgs/Joy or custom message type - Eye gaze tracking → geometry_msgs/PointStamped

Current Workaround: Use camera data for spatial tracking

tvOS: Only Game Controller Supported

Status: Hardware limitation

Reason: Apple TV has no motion, location, or camera hardware.

Use Case: Limited to robot remote control via Siri Remote or MFi controllers

macOS: No IMU/GPS Sensors

Status: Hardware limitation

Reason: Desktop Macs don't have accelerometer/gyroscope or GPS.

Use Case: macOS version mainly for development/testing and stationary camera use


iOS Restrictions

Camera/LiDAR Stop in Background

Status: iOS system restriction

Reason: iOS doesn't allow camera/ARKit usage in background.

Workaround: Keep app in foreground when using Camera or LiDAR sensors

Proximity Sensor Only on iPhone

Status: Hardware limitation

Reason: iPads don't have proximity sensors.

Workaround: Use iPhone for proximity sensing, or use LiDAR for distance measurement


Performance & Stability

Multiple Cameras May Cause Memory Warnings

Status: Known issue

Behavior: Enabling 3-4 cameras simultaneously may trigger iOS memory warnings.

Mitigation: - App automatically stops high-memory sensors on warning - Reduce number of active cameras - Lower camera resolution in settings

Workaround: Enable only cameras you need

High Frame Rate May Cause Thermal Throttling

Status: Expected behavior

Reason: Continuous 100 Hz IMU + multi-camera can heat device.

Mitigation: - iOS will throttle CPU/GPU when too hot - Rates may automatically decrease

Workaround: - Reduce publishing rates - Disable unused sensors - Allow device to cool between sessions


Network & Connectivity

Initial Connection Can Be Slow

Status: Normal behavior

Reason: Zenoh session establishment + version detection takes 2-5 seconds.

Workaround: Wait for "Publishing" state before expecting data

Connection Lost Not Always Detected Immediately

Status: Known limitation

Reason: Zenoh uses keep-alive packets with timeout.

Behavior: May take 10-30 seconds to detect router failure.

Workaround: App will auto-detect after 3 consecutive publish failures


Wire Format Compatibility

rmw_zenoh_cpp Version Sensitivity

Status: By design

Reason: Wire format changes between rmw_zenoh_cpp versions.

Mitigation: - Auto-detect mode handles most cases - Manual Humble/Jazzy selection available

Known Compatible Versions: - ROS 2 Humble: rmw_zenoh_cpp (Humble release) - ROS 2 Jazzy: rmw_zenoh_cpp (Jazzy release)

Workaround: Use matching ROS 2 version and wire mode setting


DDS Transport

Camera/LiDAR fragmentation loss on DDS over WiFi

Status: Known limitation

Reason: Large RTPS messages (>1400 bytes — camera, LiDAR, CameraInfo with large K matrices) are split into UDP fragments. Consumer WiFi often drops or reorders fragments, especially over multicast.

Mitigation: - Use Unicast or Hybrid discovery mode (Settings → Transport → DDS → Discovery Mode). - Reduce camera resolution or LiDAR point density. - Use wired Ethernet on the ROS 2 host if possible.

CameraInfo requires BestEffort subscriber QoS

Status: By design

Reason: CameraInfo publishes with BestEffort + TransientLocal QoS (latchedBestEffort) to match DDS behavior on iOS. Standard image_transport subscribers default to Reliable, which does not match.

Workaround: Override the subscriber QoS:

ros2 topic echo /conduit/camera/front/camera_info \
  --qos-reliability best_effort \
  --qos-durability transient_local

Disconnect delay on DDS (up to ~5 seconds)

Status: Workaround in place

Reason: DDS participant deletion is serialized on iOS to avoid a platform-specific deadlock in CycloneDDS's teardown path.

Behavior: Pressing Stop in the app can take 2-5 seconds to fully release the domain. This is intentional and safe.

DDS requires WiFi — no cellular fallback

Status: By design

Reason: DDS discovery binds to a specific network interface (en0 on iOS). Cellular or VPN interfaces are not supported; multicast/unicast discovery requires the device and the ROS 2 host to be on the same LAN.

Workaround: Use Zenoh transport with a public router address if cross-network/WAN operation is required.


Premium Features

Premium Purchase Required for Some Sensors

Status: By design (business model)

Free Sensors: - IMU, GPS, Magnetic Field, Proximity, Barometer, Illuminance, Battery, Thermal, Microphone - Front camera

Premium Sensors / Features (one-time In-App Purchase per item): - LiDAR - Wide / Ultra-wide / Telephoto cameras - Game Controller - Background mode — keep publishing while the app is backgrounded - MCAP Recording — record live topics to a local .mcap file

Premium Purchases Not Syncing

Status: Rare issue

Reason: App Store receipt verification delay.

Solutions: 1. Restart app 2. Restore purchases (Settings → Restore Purchases) 3. Verify Apple ID is correct


Workaround Summary

Issue Workaround
Background GPS Keep app in foreground
visionOS no GPS Use iPhone/iPad
tvOS limited sensors Use for Game Controller only
macOS no IMU Use iPhone/iPad
Camera background Keep app in foreground
Memory warnings Reduce active sensors
Thermal throttling Lower rates, fewer sensors
Connection slow Wait 5 seconds for establishment
DDS fragmentation loss on WiFi Use Unicast or Hybrid discovery; lower camera/LiDAR resolution
CameraInfo QoS mismatch Subscriber: --qos-reliability best_effort --qos-durability transient_local
DDS disconnect delay Expected behavior — no user action required
DDS over WAN / cellular Use Zenoh transport with a public router instead

Reporting New Issues

Found a bug not listed here? Create an issue with: - Platform and OS version - Sensor type affected - Steps to reproduce - Expected vs actual behavior

Feature Requests

Want a new feature? Request it here

We prioritize based on: - User impact - Technical feasibility - Platform constraints - Development resources