diff --git a/app/api/formsemestres.py b/app/api/formsemestres.py
index 81df34ede0a035858044ec1b2d2c379bd76b6694..1b208cf70fe14ef5c2440ebacbce9ddce64c049e 100644
--- a/app/api/formsemestres.py
+++ b/app/api/formsemestres.py
@@ -18,7 +18,7 @@ import datetime
 import io
 from operator import attrgetter, itemgetter
 
-from flask import g, make_response, request
+from flask import g, make_response, request, Response
 from flask_json import as_json
 from flask_login import current_user, login_required
 from flask_sqlalchemy.query import Query
@@ -101,7 +101,7 @@ def formsemestre_get_with_description(formsemestre_id: int):
     return sem
 
 
-def _list_formsemestres_query() -> Query:
+def _list_formsemestres_query() -> Query | Response:
     """Recupère les formsemestres selon les arguments passés (request.args)"""
     etape_apo = request.args.get("etape_apo")
     annee_scolaire = request.args.get("annee_scolaire")
@@ -192,9 +192,10 @@ def formsemestres_query():
     ine:<string:ine>
 
     """
-    formsemestres = _list_formsemestres_query()
-
-    return [formsemestre.to_dict_api() for formsemestre in formsemestres]
+    formsemestres_or_reponse = _list_formsemestres_query()
+    if isinstance(formsemestres_or_reponse, Response):
+        return formsemestres_or_reponse
+    return [formsemestre.to_dict_api() for formsemestre in formsemestres_or_reponse]
 
 
 @bp.route("/formsemestre/<int:formsemestre_id>/edit", methods=["POST"])
@@ -882,9 +883,11 @@ def formsemestres_with_description():
     avec description externe pour AutoSco.
     """
     formsemestre: FormSemestre
-    formsemestres = _list_formsemestres_query()
+    formsemestres_or_reponse = _list_formsemestres_query()
+    if isinstance(formsemestres_or_reponse, Response):
+        return formsemestres_or_reponse
     res = []
-    for formsemestre in formsemestres:
+    for formsemestre in formsemestres_or_reponse:
         sem = formsemestre.to_dict_api()
         _add_description(formsemestre, sem)
         res.append(sem)
diff --git a/tests/api/test_api_permissions.py b/tests/api/test_api_permissions.py
index c459aeed878a6c02a1f1f7d669dd74123a64538e..2de5a425c07c50aa05afd460703404794782f134 100755
--- a/tests/api/test_api_permissions.py
+++ b/tests/api/test_api_permissions.py
@@ -73,6 +73,7 @@ def test_permissions(api_headers):
     # par défaut, on passe tous les arguments de all_args
     endpoint_args = {
         "api.formsemestres_query": {},
+        "api.formsemestres_with_description": {"formsemestre_id": 1},
         "api.formsemestre_edt": {
             "formsemestre_id": 1,
         },