diff --git a/src/azul/service/index_controller.py b/src/azul/service/index_controller.py index 02d8bfe089..57055ceec1 100644 --- a/src/azul/service/index_controller.py +++ b/src/azul/service/index_controller.py @@ -347,6 +347,13 @@ def get_head_index_summary(): def search(self, entity_type: str, entity_id: str | None = None) -> str | JSON: request = self.current_request query_params = self._hoist_parameters(request) + # Validate `catalog` first since `_validate_entity_type` requires a + # valid catalog to load the metadata plugin. + validate_params(query_params, + catalog=self._validate_catalog, + allow_extra_params=True) + # Likewise, `_validate_size` requires a valid entity type. + self._validate_entity_type(entity_type) validate_params(query_params, catalog=self._validate_catalog, filters=self._validate_filters, @@ -357,7 +364,6 @@ def search(self, entity_type: str, entity_id: str | None = None) -> str | JSON: search_before_uid=str, size=partial(self._validate_size, entity_type), sort=self._validate_field) - self._validate_entity_type(entity_type) filters = query_params.get('filters') pagination = self._pagination(entity_type) authentication = self._authentication(request)