diff --git a/src/api/routes/user.py b/src/api/routes/user.py
index 323d428e83034da1202fdbc0c9bbfb071bfe5605..a7f1f493598efc2bdc74947f3b8a3de99a93d6ad 100644
--- a/src/api/routes/user.py
+++ b/src/api/routes/user.py
@@ -22,12 +22,12 @@ def api_route_users():
 @api_moderator_route()
 def api_route_user_me_settings():
     if flask.request.method == "GET":
-        if api.live_config.is_readonly():
-            raise ApiClientException(ERROR_SITE_IS_READONLY)
         settings = get_user_settings(get_user_id())
         if settings is None:
             raise RuntimeError("No db user for moderator")  # pragma: no cover
         return settings
+    if api.live_config.is_readonly():
+        raise ApiClientException(ERROR_SITE_IS_READONLY)
     check_csrf_token()
     updates = get_client_json(flask.request).get_object("updates")
     update_user_settings(get_user_id(), updates)