diff --git a/oslo_messaging/_drivers/impl_rabbit.py b/oslo_messaging/_drivers/impl_rabbit.py
index 1f75b3349..9470b9d9f 100644
--- a/oslo_messaging/_drivers/impl_rabbit.py
+++ b/oslo_messaging/_drivers/impl_rabbit.py
@@ -974,6 +974,7 @@ class Connection(object):
         """Publish a message."""
         producer = kombu.messaging.Producer(exchange=exchange,
                                             channel=self.channel,
+                                            auto_declare=not exchange.passive,
                                             routing_key=routing_key)
 
         expiration = None