Unable to add components to content library

My Meilisearch configuration is

image

Following the tutor documentation on Meilisearch it seems ok, as MEILISEARCH_API_KEY equals to MEILISEARCH_MASTER_KEY :man_shrugging:

Also I’ve found this error in CMS logs (tutor local logs cms), it dispatches when trying to create a new library component:

cms-1  | 2026-04-14 13:50:36,352 ERROR 13 [root] [user None] [ip None] signals.py:22 - Uncaught exception from None
cms-1  | Traceback (most recent call last):
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner
cms-1  |     response = get_response(request)
cms-1  |                ^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/django/core/handlers/base.py", line 197, in _get_response
cms-1  |     response = wrapped_callback(request, *callback_args, **callback_kwargs)
cms-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/django/views/decorators/csrf.py", line 56, in wrapper_view
cms-1  |     return view_func(*args, **kwargs)
cms-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/django/views/generic/base.py", line 104, in view
cms-1  |     return self.dispatch(request, *args, **kwargs)
cms-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/django/utils/decorators.py", line 46, in _wrapper
cms-1  |     return bound_method(*args, **kwargs)
cms-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/rest_framework/views.py", line 509, in dispatch
cms-1  |     response = self.handle_exception(exc)
cms-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/rest_framework/views.py", line 469, in handle_exception
cms-1  |     self.raise_uncaught_exception(exc)
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
cms-1  |     raise exc
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/rest_framework/views.py", line 506, in dispatch
cms-1  |     response = handler(request, *args, **kwargs)
cms-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/edx-platform/openedx/core/djangoapps/content_libraries/rest_api/utils.py", line 24, in wrapped_fn
cms-1  |     return fn(*args, **kwargs)
cms-1  |            ^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/edx-platform/openedx/core/djangoapps/content_libraries/rest_api/blocks.py", line 96, in post
cms-1  |     result = api.create_library_block(library_key, user_id=request.user.id, **serializer.validated_data)
cms-1  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/edx-platform/openedx/core/djangoapps/content_libraries/api/blocks.py", line 309, in create_library_block
cms-1  |     _create_component_for_block(content_library, usage_key, user_id, can_stand_alone)
cms-1  |   File "/openedx/edx-platform/openedx/core/djangoapps/content_libraries/api/blocks.py", line 891, in _create_component_for_block
cms-1  |     component_type = authoring_api.get_or_create_component_type(
cms-1  |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/openedx_learning/apps/authoring/components/api.py", line 69, in get_or_create_component_type
cms-1  |     component_type, _created = ComponentType.objects.get_or_create(
cms-1  |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/django/db/models/manager.py", line 87, in manager_method
cms-1  |     return getattr(self.get_queryset(), name)(*args, **kwargs)
cms-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/django/db/models/query.py", line 916, in get_or_create
cms-1  |     return self.get(**kwargs), False
cms-1  |            ^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/django/db/models/query.py", line 640, in get
cms-1  |     raise self.model.MultipleObjectsReturned(
cms-1  | openedx_learning.apps.authoring.components.models.ComponentType.MultipleObjectsReturned: get() returned more than one ComponentType -- it returned 3!
cms-1  | 2026-04-14 13:50:36,371 ERROR 13 [django.request] [user 7268] [ip 150.244.22.149] log.py:241 - Internal Server Error: /api/libraries/v2/lib:UAMx:CSTEST/blocks/
cms-1  | Traceback (most recent call last):
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner
cms-1  |     response = get_response(request)
cms-1  |                ^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/django/core/handlers/base.py", line 197, in _get_response
cms-1  |     response = wrapped_callback(request, *callback_args, **callback_kwargs)
cms-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/django/views/decorators/csrf.py", line 56, in wrapper_view
cms-1  |     return view_func(*args, **kwargs)
cms-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/django/views/generic/base.py", line 104, in view
cms-1  |     return self.dispatch(request, *args, **kwargs)
cms-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/django/utils/decorators.py", line 46, in _wrapper
cms-1  |     return bound_method(*args, **kwargs)
cms-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/rest_framework/views.py", line 509, in dispatch
cms-1  |     response = self.handle_exception(exc)
cms-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/rest_framework/views.py", line 469, in handle_exception
cms-1  |     self.raise_uncaught_exception(exc)
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
cms-1  |     raise exc
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/rest_framework/views.py", line 506, in dispatch
cms-1  |     response = handler(request, *args, **kwargs)
cms-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/edx-platform/openedx/core/djangoapps/content_libraries/rest_api/utils.py", line 24, in wrapped_fn
cms-1  |     return fn(*args, **kwargs)
cms-1  |            ^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/edx-platform/openedx/core/djangoapps/content_libraries/rest_api/blocks.py", line 96, in post
cms-1  |     result = api.create_library_block(library_key, user_id=request.user.id, **serializer.validated_data)
cms-1  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/edx-platform/openedx/core/djangoapps/content_libraries/api/blocks.py", line 309, in create_library_block
cms-1  |     _create_component_for_block(content_library, usage_key, user_id, can_stand_alone)
cms-1  |   File "/openedx/edx-platform/openedx/core/djangoapps/content_libraries/api/blocks.py", line 891, in _create_component_for_block
cms-1  |     component_type = authoring_api.get_or_create_component_type(
cms-1  |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/openedx_learning/apps/authoring/components/api.py", line 69, in get_or_create_component_type
cms-1  |     component_type, _created = ComponentType.objects.get_or_create(
cms-1  |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/django/db/models/manager.py", line 87, in manager_method
cms-1  |     return getattr(self.get_queryset(), name)(*args, **kwargs)
cms-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/django/db/models/query.py", line 916, in get_or_create
cms-1  |     return self.get(**kwargs), False
cms-1  |            ^^^^^^^^^^^^^^^^^^
cms-1  |   File "/openedx/venv/lib/python3.11/site-packages/django/db/models/query.py", line 640, in get
cms-1  |     raise self.model.MultipleObjectsReturned(
cms-1  | openedx_learning.apps.authoring.components.models.ComponentType.MultipleObjectsReturned: get() returned more than one ComponentType -- it returned 3!
cms-1  | [pid: 13|app: 0|req: 241/1097] 172.22.0.3 () {66 vars in 4225 bytes} [Tue Apr 14 13:50:36 2026] POST /api/libraries/v2/lib:UAMx:CSTEST/blocks/ => generated 8913 bytes in 198 msecs (HTTP/1.1 500) 10 headers in 619 bytes (1 switches on core 0)