diff --git a/tests/basic_deployment.py b/tests/basic_deployment.py
index 0e6be10bf854d506d9b2b8df13c7680d30bbbf6a..0e62069afd8d1afbcbe03bd100286895881db242 100644
--- a/tests/basic_deployment.py
+++ b/tests/basic_deployment.py
@@ -28,6 +28,10 @@ from charmhelpers.contrib.openstack.amulet.utils import (
     # ERROR
 )
 
+from charmhelpers.core.decorators import (
+    retry_on_exception,
+)
+
 # Use DEBUG to turn on debug logging
 u = OpenStackAmuletUtils(DEBUG)
 
@@ -215,8 +219,18 @@ class OpenstackDashboardBasicDeployment(OpenStackAmuletDeployment):
         dashboard_relation = unit.relation('identity-service',
                                            'keystone:identity-service')
         dashboard_ip = dashboard_relation['private-address']
-        response = urllib2.urlopen('http://%s/horizon' % (dashboard_ip))
-        html = response.read()
+
+        # NOTE(fnordahl) there is a eluding issue that currently makes the
+        #                first request to the OpenStack Dashboard error out
+        #                with 500 Internal Server Error in CI.  Temporarilly
+        #                add retry logic to unwedge the gate.  This issue
+        #                should be revisited and root caused properly when time
+        #                allows.
+        @retry_on_exception(1)
+        def do_request():
+            response = urllib2.urlopen('http://%s/horizon' % (dashboard_ip))
+            return response.read()
+        html = do_request()
         if 'OpenStack Dashboard' not in html:
             msg = "Dashboard frontpage check failed"
             amulet.raise_status(amulet.FAIL, msg=msg)