-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Milestone
Description
On a clean local deployment, attempting to create a workspace says:
[workspaces] 2025-08-19 13:21:28,363 [ERROR] server.handle_exception: 404: b'{"error":"User not found"}'
[workspaces] Traceback (most recent call last):
[workspaces] 2025-08-19 13:21:28,363 [ERROR] server.handle_exception: 404: b'{"error":"User not found"}'
[workspaces] Traceback (most recent call last):
[workspaces] File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1823, in full_dispatch_request
[workspaces] rv = self.dispatch_request()
[workspaces] File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1823, in full_dispatch_request
[workspaces] ^^^^^^^^^^^^^^^^^^^^^^^
[workspaces] rv = self.dispatch_request()
[workspaces] ^^^^^^^^^^^^^^^^^^^^^^^
[workspaces] File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1799, in dispatch_request
[workspaces] return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
[workspaces] File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1799, in dispatch_request
[workspaces] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[workspaces] return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
[workspaces] File "/usr/local/lib/python3.12/site-packages/connexion/decorators/decorator.py", line 68, in wrapper
[workspaces] response = function(request)
[workspaces] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[workspaces] ^^^^^^^^^^^^^^^^^
[workspaces] File "/usr/local/lib/python3.12/site-packages/connexion/security/security_handler_factory.py", line 388, in wrapper
[workspaces] File "/usr/local/lib/python3.12/site-packages/connexion/decorators/decorator.py", line 68, in wrapper
[workspaces] return function(request)
[workspaces] ^^^^^^^^^^^^^^^^^
[workspaces] File "/usr/local/lib/python3.12/site-packages/connexion/decorators/uri_parsing.py", line 149, in wrapper
[workspaces] response = function(request)
[workspaces] response = function(request)
[workspaces] ^^^^^^^^^^^^^^^^^
[workspaces] File "/usr/local/lib/python3.12/site-packages/connexion/decorators/validation.py", line 196, in wrapper
[workspaces] response = function(request)
[workspaces] ^^^^^^^^^^^^^^^^^
[workspaces] File "/usr/local/lib/python3.12/site-packages/connexion/security/security_handler_factory.py", line 388, in wrapper
[workspaces] ^^^^^^^^^^^^^^^^^
[workspaces] return function(request)
[workspaces] ^^^^^^^^^^^^^^^^^
[workspaces] File "/usr/local/lib/python3.12/site-packages/connexion/decorators/parameter.py", line 120, in wrapper
[workspaces] File "/usr/local/lib/python3.12/site-packages/connexion/decorators/uri_parsing.py", line 149, in wrapper
[workspaces] response = function(request)
[workspaces] ^^^^^^^^^^^^^^^^^
[workspaces] return function(**kwargs)
[workspaces] ^^^^^^^^^^^^^^^^^^
[workspaces] File "/usr/src/app/workspaces/controllers/crud/crud_controllers.py", line 25, in post
[workspaces] return super().post(body)
[workspaces] ^^^^^^^^^^^^^^^^^^
[workspaces] File "/usr/src/app/workspaces/controllers/crud/base_model_controller.py", line 42, in post
[workspaces] File "/usr/local/lib/python3.12/site-packages/connexion/decorators/validation.py", line 196, in wrapper
[workspaces] response = function(request)
[workspaces] obj = self.service.post(body).to_dict()
[workspaces] ^^^^^^^^^^^^^^^^^
[workspaces] File "/usr/local/lib/python3.12/site-packages/connexion/decorators/parameter.py", line 120, in wrapper
[workspaces] ^^^^^^^^^^^^^^^^^^^^^^^
[workspaces] return function(**kwargs)
[workspaces] File "/libraries/cloudharness-common/cloudharness/events/decorators.py", line 19, in wrapper
[workspaces] ^^^^^^^^^^^^^^^^^^
[workspaces] File "/usr/src/app/workspaces/controllers/crud/crud_controllers.py", line 25, in post
[workspaces] return super().post(body)
[workspaces] ^^^^^^^^^^^^^^^^^^
[workspaces] File "/usr/src/app/workspaces/controllers/crud/base_model_controller.py", line 42, in post
[workspaces] result = func(self, *args, **kwargs)
[workspaces] obj = self.service.post(body).to_dict()
[workspaces] ^^^^^^^^^^^^^^^^^^^^^^^
[workspaces] ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[workspaces] File "/libraries/cloudharness-common/cloudharness/events/decorators.py", line 19, in wrapper
[workspaces] File "/usr/src/app/workspaces/service/crud_service.py", line 207, in post
[workspaces] self.check_max_num_workspaces_per_user(body['user_id'])
[workspaces] result = func(self, *args, **kwargs)
[workspaces] File "/usr/src/app/workspaces/service/crud_service.py", line 183, in check_max_num_workspaces_per_user
[workspaces] ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[workspaces] File "/usr/src/app/workspaces/service/crud_service.py", line 207, in post
[workspaces] self.check_max_num_workspaces_per_user(body['user_id'])
[workspaces] File "/usr/src/app/workspaces/service/crud_service.py", line 183, in check_max_num_workspaces_per_user
[workspaces] if not auth_client.user_has_realm_role(user_id=user_id, role="admin"):
[workspaces] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[workspaces] File "/libraries/cloudharness-common/cloudharness/auth/keycloak.py", line 541, in user_has_realm_role
[workspaces] roles = [user_realm_role for user_realm_role in self.get_user_realm_roles(
[workspaces] if not auth_client.user_has_realm_role(user_id=user_id, role="admin"):
[workspaces] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[workspaces] File "/libraries/cloudharness-common/cloudharness/auth/keycloak.py", line 541, in user_has_realm_role
[workspaces] roles = [user_realm_role for user_realm_role in self.get_user_realm_roles(
[workspaces] ^^^^^^^^^^^^^^^^^^^^^^^^^^
[workspaces] ^^^^^^^^^^^^^^^^^^^^^^^^^^
[workspaces] File "/libraries/cloudharness-common/cloudharness/auth/keycloak.py", line 39, in wrapper
[workspaces] File "/libraries/cloudharness-common/cloudharness/auth/keycloak.py", line 39, in wrapper
[workspaces] return func(self, *args, **kwargs)
[workspaces] return func(self, *args, **kwargs)
[workspaces] ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[workspaces] ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[workspaces] File "/libraries/cloudharness-common/cloudharness/auth/keycloak.py", line 486, in get_user_realm_roles
[workspaces] return admin_client.get_realm_roles_of_user(user_id)
[workspaces] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[workspaces] File "/libraries/cloudharness-common/cloudharness/auth/keycloak.py", line 486, in get_user_realm_roles
[workspaces] return admin_client.get_realm_roles_of_user(user_id)
[workspaces] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[workspaces] File "/usr/local/lib/python3.12/site-packages/keycloak/keycloak_admin.py", line 2726, in get_realm_roles_of_user
[workspaces] return raise_error_from_response(data_raw, KeycloakGetError)
[workspaces] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[workspaces] File "/usr/local/lib/python3.12/site-packages/keycloak/exceptions.py", line 192, in raise_error_from_response
[workspaces] raise error(
[workspaces] File "/usr/local/lib/python3.12/site-packages/keycloak/keycloak_admin.py", line 2726, in get_realm_roles_of_user
[workspaces] return raise_error_from_response(data_raw, KeycloakGetError)
[workspaces] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[workspaces] File "/usr/local/lib/python3.12/site-packages/keycloak/exceptions.py", line 192, in raise_error_from_response
[workspaces] raise error(
[workspaces] keycloak.exceptions.KeycloakGetError: 404: b'{"error":"User not found"}'
[workspaces] keycloak.exceptions.KeycloakGetError: 404: b'{"error":"User not found"}'
Metadata
Metadata
Assignees
Labels
No labels