-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Description
Describe the bug
Unable to edit MFA devices
To Reproduce
Steps to reproduce the behavior:
- Have existing WebAuthn devices configured (device_type_id column is NULL)
- Log into authentik
- Go to Settings > MFA Devices
- See error "Failed to fetch objects."
Expected behavior
Be able to edit MFA devices
Logs
Stacktrace from authentik
Traceback (most recent call last):
File "/ak-root/venv/lib/python3.12/site-packages/asgiref/sync.py", line 518, in thread_handler
raise exc_info[1]
File "/ak-root/venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 253, in _get_response_async
response = await wrapped_callback(
^^^^^^^^^^^^^^^^^^^^^^^
File "/ak-root/venv/lib/python3.12/site-packages/asgiref/sync.py", line 468, in __call__
ret = await asyncio.shield(exec_coro)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/ak-root/venv/lib/python3.12/site-packages/asgiref/current_thread_executor.py", line 40, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/ak-root/venv/lib/python3.12/site-packages/asgiref/sync.py", line 522, in thread_handler
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/ak-root/venv/lib/python3.12/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper
return view_func(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/ak-root/venv/lib/python3.12/site-packages/rest_framework/viewsets.py", line 125, in view
return self.dispatch(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/ak-root/venv/lib/python3.12/site-packages/rest_framework/views.py", line 509, in dispatch
response = self.handle_exception(exc)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/ak-root/venv/lib/python3.12/site-packages/rest_framework/views.py", line 469, in handle_exception
self.raise_uncaught_exception(exc)
File "/ak-root/venv/lib/python3.12/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
raise exc
File "/ak-root/venv/lib/python3.12/site-packages/rest_framework/views.py", line 506, in dispatch
response = handler(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/authentik/core/api/devices.py", line 59, in list
return Response(DeviceSerializer(devices, many=True).data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/ak-root/venv/lib/python3.12/site-packages/rest_framework/serializers.py", line 768, in data
ret = super().data
^^^^^^^^^^^^
File "/ak-root/venv/lib/python3.12/site-packages/rest_framework/serializers.py", line 253, in data
self._data = self.to_representation(self.instance)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/ak-root/venv/lib/python3.12/site-packages/rest_framework/serializers.py", line 687, in to_representation
self.child.to_representation(item) for item in iterable
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/ak-root/venv/lib/python3.12/site-packages/rest_framework/serializers.py", line 522, in to_representation
ret[field.field_name] = field.to_representation(attribute)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/ak-root/venv/lib/python3.12/site-packages/rest_framework/fields.py", line 1838, in to_representation
return method(value)
^^^^^^^^^^^^^
File "/authentik/core/api/devices.py", line 43, in get_extra_description
return instance.device_type.description
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
builtins.AttributeError: 'NoneType' object has no attribute 'description'
Version and Deployment (please complete the following information):
- authentik version: 2024.10.0
- Deployment: docker-compose
Additional context
All of the WebAuthn devices would have been registered on much earlier versions of authentik.
Only two entries in the authentik_stages_authenticator_webauthn_webauthndevice table have a value for device_type_id.
Of those, one has a last_updated and last_used value on 2024-10-21. The other has a last_updated on 2024-09-11 (but no last_used value).
There are entries with a last_used of today.
All of the entries show a created value of 0001-01-01 00:00:00+00.
I registered devices on a test instance of authentik after it was upgraded to 2024.10.0, and they correctly have a value for device_type_id
