ros2 communication_error ai_generated true

[WARN] New publisher discovered on topic '/sensor_data', offering incompatible QoS

ID: ros2/qos-incompatible

Also available as: JSON · Markdown
88%Fix Rate
90%Confidence
3Evidence
2023-01-01First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
2 active

Root Cause

Publisher and subscriber have mismatched QoS profiles. Messages are silently dropped with no error besides this warning.

generic

Workarounds

  1. 92% success Match subscriber QoS to publisher using SensorDataQoS or qos_profile_sensor_data
    from rclpy.qos import qos_profile_sensor_data; self.create_subscription(Msg, topic, cb, qos_profile_sensor_data)
  2. 90% success Use ros2 topic info -v to check offered and requested QoS
    ros2 topic info -v /sensor_data
  3. 88% success Set QoS reliability to BEST_EFFORT for high-frequency sensor topics

Dead Ends

Common approaches that don't work:

  1. Set both sides to RELIABLE QoS unconditionally 82% fail

    Sensor drivers often only offer BEST_EFFORT; forcing RELIABLE on subscriber causes zero messages with no further error

  2. Ignore the warning assuming messages still arrive 90% fail

    With incompatible QoS the DDS layer drops ALL messages; the warning is not cosmetic

  3. Change DDS middleware hoping it fixes QoS 75% fail

    QoS incompatibility is DDS-standard behavior, not vendor-specific; switching RMW does not help