Skip to content

Local deployment: cannot create workspaces "user not found" #981

@sanjayankur31

Description

@sanjayankur31

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions