i have the same problem on a test install. When changing /etc/openstack-dashboard/local_settings.py so i have debug, this is the kind of error i have: [Fri Jul 20 10:04:28 2012] [error] File "/usr/lib/python2.7/dist-packages/horizon/forms/base.py", line 99, in maybe_handle [Fri Jul 20 10:04:28 2012] [error] return form, form.handle(request, form.cleaned_data) [Fri Jul 20 10:04:28 2012] [error] File "/usr/lib/python2.7/dist-packages/horizon/dashboards/settings/juju/forms.py", line 88, in handle [Fri Jul 20 10:04:28 2012] [error] redirect=request.build_absolute_uri()) [Fri Jul 20 10:04:28 2012] [error] File "/usr/lib/python2.7/dist-packages/horizon/dashboards/settings/juju/forms.py", line 81, in handle [Fri Jul 20 10:04:28 2012] [error] 's3_url': api.url_for(request, 's3'), [Fri Jul 20 10:04:28 2012] [error] File "/usr/lib/python2.7/dist-packages/horizon/api/base.py", line 112, in url_for [Fri Jul 20 10:04:28 2012] [error] raise exceptions.ServiceCatalogException(service_type) [Fri Jul 20 10:04:28 2012] [error] ServiceCatalogException: Invalid service catalog service: s3 I do not have swift installed, but my "manager node" runs nova-storage with some s3 thingy. Excerpt from my nova.conf: --s3_host=192.168.122.4 --s3_port=3333 Looks like horizon is not able to get the value of s3_url ( api.url_for(request, 's3')). As a workaround, if i change /usr/lib/python2.7/dist-packages/horizon/dashboards/settings/juju/forms.py so i hard code the s3 url in the code, it "works": ubuntu@messaging:~$ diff -u /usr/lib/python2.7/dist-packages/horizon/dashboards/settings/juju/forms.py-vanilla /usr/lib/python2.7/dist-packages/horizon/dashboards/settings/juju/forms.py --- /usr/lib/python2.7/dist-packages/horizon/dashboards/settings/juju/forms.py-vanilla 2012-07-20 10:57:02.000000000 +0100 +++ /usr/lib/python2.7/dist-packages/horizon/dashboards/settings/juju/forms.py 2012-07-20 10:58:02.000000000 +0100 @@ -78,7 +78,7 @@ context = {'ec2_access_key': keys.access, 'ec2_secret_key': keys.secret, 'ec2_url': api.url_for(request, 'ec2'), - 's3_url': api.url_for(request, 's3'), + 's3_url': 'http://192.168.122.4:3333', 'juju_admin_secret': uuid.uuid4().hex, 'control_bucket': control_bucket } I do not know exactly how horizon is getting service catalog entry, but it looks like there s one missing on mine. This is what keystone service-list tells: ubuntu@messaging:~$ keystone service-list +----------------------------------+----------+--------------+----------------------------+ | id | name | type | description | +----------------------------------+----------+--------------+----------------------------+ | 1585378098384e00a6db821ca638ecc6 | glance | image | OpenStack Image Service | | 2b66256adc5e4282afd631b58c15ad57 | keystone | identity | OpenStack Identity Service | | 7f22b61afcce43be80252083fbc21341 | nova | compute | OpenStack Compute Service | | 99eab6fe63774934ad4dee5709c57187 | ec2 | ec2 | OpenStack EC2 Service | | 9f46367719dd4505984d0f35fd3347db | volume | volume | Openstack Volume Service | | ca32c592aac74d4b9e1d26da43b74a2d | swift | object-store | OpenStack Storage Service | +----------------------------------+----------+--------------+----------------------------+ now, i have a swift endpoint (that i defined in case i would install it) but no swift is installed.