This seems to be broken in the Cinder API server. $ cinder list --sort_key name ERROR: Internal Server Error (HTTP 500) (Request-ID: req-3e740eed-b969-4ee7-a4ca-e27e33686e3c) paginate_query in cinder/common/sqlalchemyutils.py does: sort_key_attr = getattr(model, current_sort_key) where current_sort_key = 'name'. This returns (Pdb) print sort_key_attr since 'name' is a property, whereas other fields return a string that can be used in a query: (Pdb) print getattr(model, 'id') Volume.id This generates an invalid sqlalchemy query, which fails as below. So using 'name' as a sort_key seems to need some additional processing since it is a @property in the sqlalchemy Volume model. The intent may have been for this to map to the display_name field. 2015-03-26 11:17:40.434 DEBUG cinder.volume.api [-] Searching by: MultiDict([('no_migration_targets', True)]). from (pid=20188) get_all /opt/stack/cinder/cinder/volume/api.py:421 2015-03-26 11:17:40.588 ERROR cinder.api.middleware.fault [-] Caught error: SQL expression object or string expected. 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault Traceback (most recent call last): 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/opt/stack/cinder/cinder/api/middleware/fault.py", line 76, in __call__ 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault return req.get_response(self.application) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/usr/lib/python2.7/site-packages/webob/request.py", line 1320, in send 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault application, catch_exc_info=False) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/usr/lib/python2.7/site-packages/webob/request.py", line 1284, in call_application 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault app_iter = application(self.environ, start_response) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__ 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault return resp(environ, start_response) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/usr/lib/python2.7/site-packages/webob/dec.py", line 130, in __call__ 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault resp = self.call_func(req, *args, **self.kwargs) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/usr/lib/python2.7/site-packages/webob/dec.py", line 195, in call_func 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault return self.func(req, *args, **kwargs) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/usr/lib/python2.7/site-packages/osprofiler/web.py", line 99, in __call__ 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault return request.get_response(self.application) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/usr/lib/python2.7/site-packages/webob/request.py", line 1320, in send 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault application, catch_exc_info=False) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/usr/lib/python2.7/site-packages/webob/request.py", line 1284, in call_application 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault app_iter = application(self.environ, start_response) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/usr/lib/python2.7/site-packages/keystonemiddleware/auth_token.py", line 977, in __call__ 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault return self._call_app(env, start_response) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/usr/lib/python2.7/site-packages/keystonemiddleware/auth_token.py", line 902, in _call_app 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault return self._app(env, _fake_start_response) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__ 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault return resp(environ, start_response) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__ 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault return resp(environ, start_response) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/usr/lib/python2.7/site-packages/routes/middleware.py", line 131, in __call__ 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault response = self.app(environ, start_response) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__ 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault return resp(environ, start_response) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/usr/lib/python2.7/site-packages/webob/dec.py", line 130, in __call__ 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault resp = self.call_func(req, *args, **self.kwargs) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/usr/lib/python2.7/site-packages/webob/dec.py", line 195, in call_func 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault return self.func(req, *args, **kwargs) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/opt/stack/cinder/cinder/api/openstack/wsgi.py", line 978, in __call__ 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault content_type, body, accept) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/opt/stack/cinder/cinder/api/openstack/wsgi.py", line 1026, in _process_stack 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault action_result = self.dispatch(meth, request, action_args) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/opt/stack/cinder/cinder/api/openstack/wsgi.py", line 1106, in dispatch 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault return method(req=request, **action_args) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/opt/stack/cinder/cinder/api/v2/volumes.py", line 211, in detail 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault return self._get_volumes(req, is_detail=True) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/opt/stack/cinder/cinder/api/v2/volumes.py", line 244, in _get_volumes 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault viewable_admin_meta=True) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/opt/stack/cinder/cinder/volume/api.py", line 438, in get_all 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault filters=filters) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/opt/stack/cinder/cinder/db/api.py", line 227, in volume_get_all_by_project 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault filters=filters) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/opt/stack/cinder/cinder/db/sqlalchemy/api.py", line 182, in wrapper 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault return f(*args, **kwargs) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/opt/stack/cinder/cinder/db/sqlalchemy/api.py", line 1436, in volume_get_all_by_project 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault sort_keys, sort_dirs, filters) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/opt/stack/cinder/cinder/db/sqlalchemy/api.py", line 1482, in _generate_paginate_query 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault sort_dirs=sort_dirs) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/opt/stack/cinder/cinder/common/sqlalchemyutils.py", line 92, in paginate_query 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault query = query.order_by(sort_dir_func(sort_key_attr)) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "", line 2, in desc 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/usr/lib64/python2.7/site-packages/sqlalchemy/sql/elements.py", line 2415, in _create_desc 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault _literal_as_text(column), modifier=operators.desc_op) 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault File "/usr/lib64/python2.7/site-packages/sqlalchemy/sql/elements.py", line 3438, in _literal_as_text 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault "SQL expression object or string expected." 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault ArgumentError: SQL expression object or string expected. 2015-03-26 11:17:40.588 TRACE cinder.api.middleware.fault