Page MenuHomePhabricator

openstack-browser: HTTP 500 when accessing /api/projects.json
Closed, ResolvedPublicBUG REPORT

Description

Steps to replicate the issue (include links if applicable):

What happens?:

$ curl https://openstack-browser.toolforge.org/api/projects.json
<!doctype html>
<html lang=en>
<title>500 Internal Server Error</title>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.</p>

What should have happened instead?:
Expected a JSON object of OpenStack project IDs mapped to names, as implied by the source. (1, 2)

Event Timeline

Chlod renamed this task from openstack-browser: 500 when accessing /api/projects.json to openstack-browser: HTTP 500 when accessing /api/projects.json.Aug 31 2024, 2:19 PM
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz] [2024-08-31 14:43:05,164] ERROR in app: Exception on /api/projects.json [GET]
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz] Traceback (most recent call last):
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]   File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/flask/app.py", line 1473, in wsgi_app
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]     response = self.full_dispatch_request()
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]   File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/flask/app.py", line 882, in full_dispatch_request
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]     rv = self.handle_user_exception(e)
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]   File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/flask/app.py", line 880, in full_dispatch_request
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]     rv = self.dispatch_request()
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]          ^^^^^^^^^^^^^^^^^^^^^^^
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]   File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/flask/app.py", line 865, in dispatch_request
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]   File "/workspace/app.py", line 313, in api_projects_json
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]     return flask.jsonify(projects=keystone.all_projects(cached).keys())
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]   File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/flask/json/__init__.py", line 170, in jsonify
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]     return current_app.json.response(*args, **kwargs)  # type: ignore[return-value]
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]   File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/flask/json/provider.py", line 214, in response
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]     f"{self.dumps(obj, **dump_args)}\n", mimetype=self.mimetype
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]   File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/flask/json/provider.py", line 179, in dumps
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]     return json.dumps(obj, **kwargs)
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]            ^^^^^^^^^^^^^^^^^^^^^^^^^
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]   File "/layers/heroku_python/python/lib/python3.12/json/__init__.py", line 238, in dumps
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]     **kw).encode(obj)
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]           ^^^^^^^^^^^
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]   File "/layers/heroku_python/python/lib/python3.12/json/encoder.py", line 200, in encode
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]     chunks = self.iterencode(o, _one_shot=True)
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]   File "/layers/heroku_python/python/lib/python3.12/json/encoder.py", line 258, in iterencode
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]     return _iterencode(o, 0)
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]            ^^^^^^^^^^^^^^^^^
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]   File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/flask/json/provider.py", line 121, in _default
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz]     raise TypeError(f"Object of type {type(o).__name__} is not JSON serializable")
2024-08-31T14:43:05+00:00 [openstack-browser-d697c9f9-5b7xz] TypeError: Object of type dict_keys is not JSON serializable