ros2
communication_error
ai_generated
true
[WARN] New publisher discovered on topic '/sensor_data', offering incompatible QoS
ID: ros2/qos-incompatible
88%Fix Rate
90%Confidence
3Evidence
2023-01-01First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| 2 | active | — | — | — |
Root Cause
Publisher and subscriber have mismatched QoS profiles. Messages are silently dropped with no error besides this warning.
genericWorkarounds
-
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)
-
90% success Use ros2 topic info -v to check offered and requested QoS
ros2 topic info -v /sensor_data
-
88% success Set QoS reliability to BEST_EFFORT for high-frequency sensor topics
Dead Ends
Common approaches that don't work:
-
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
-
Ignore the warning assuming messages still arrive
90% fail
With incompatible QoS the DDS layer drops ALL messages; the warning is not cosmetic
-
Change DDS middleware hoping it fixes QoS
75% fail
QoS incompatibility is DDS-standard behavior, not vendor-specific; switching RMW does not help