diff --git a/api/src/api/authentication.py b/api/src/api/authentication.py
index e4b40238aed10277119a8930bf0b40f1cb56f5d9..567d9de0454edd96e1fe461b6609cc0003f7ec45 100644
--- a/api/src/api/authentication.py
+++ b/api/src/api/authentication.py
@@ -223,6 +223,7 @@ def authenticate_fsmpi(username: str, password: str) -> {}:
         if user_db is None:
             raise ApiClientException(ERROR_AUTHENTICATION_NOT_AVAILABLE(
                 "Site is read-only and we can not create a new account for you in the database"))
+        api_session.set_user(user_db)
     else:
         def _trans(session: SessionDb):
             user_db = session.scalar(User.sudo_select().where(User.handle == user_handle))
@@ -241,13 +242,10 @@ def authenticate_fsmpi(username: str, password: str) -> {}:
             user_db.full_name = full_name
             user_db.display_name = display_name
             user_db.email = email
-
-            session.commit()
-            session.expunge_all()
-            return user_db
-        user_db = database.execute_write_transaction(_trans)
+            api_session.set_user(user_db)
+        
+        database.execute_write_transaction_and_commit(_trans)
     
-    api_session.set_user(user_db)
     api_session.csrf_token = "".join(
         secrets.choice(string.ascii_letters + string.digits) for _ in range(64))
     api_session.permanent = True
diff --git a/api/tests/routes/object_modifications.py b/api/tests/routes/object_modifications.py
index c0da04fc4cf23871faeb2d97517713131fa89e7a..a6575c5cfb9db7283367b68479bb79232c91a360 100644
--- a/api/tests/routes/object_modifications.py
+++ b/api/tests/routes/object_modifications.py
@@ -1502,7 +1502,7 @@ class ObjectModificationsTest(ApiTest):
             f"/object_management/course/{id}/configuration",
             use_moderator_login=True,
         )[1]
-        self.assert_field_has_value(config, "responsible_users_ids", [42, 43])
+        self.assertEqual(set(self.get_field_value(config, "responsible_users_ids")), {42, 43})
         self.do_json_request(
             "GET",
             f"/course/{id}",