diff --git a/oslo_messaging/transport.py b/oslo_messaging/transport.py
index 93f3f478b..556529ff8 100644
--- a/oslo_messaging/transport.py
+++ b/oslo_messaging/transport.py
@@ -395,6 +395,8 @@ class TransportURL(object):
         :returns: A TransportURL
         """
 
+        if not url:
+            conf.register_opts(_transport_opts)
         url = url or conf.transport_url
         if not url:
             return cls(conf, aliases=aliases)