diff --git a/synapse/handlers/auth.py b/synapse/handlers/auth.py
index 8f9cff92e84b67da17fdf175b12ff842958e727c..7ea8ce9f9479adb1a98adc3a6b40c292d8ca13eb 100644
--- a/synapse/handlers/auth.py
+++ b/synapse/handlers/auth.py
@@ -520,7 +520,7 @@ class AuthHandler(BaseHandler):
         """
         logger.info("Logging in user %s on device %s", user_id, device_id)
         access_token = yield self.issue_access_token(user_id, device_id)
-        yield self._check_mau_limits()
+        yield self.auth.check_auth_blocking()
 
         # the device *should* have been registered before we got here; however,
         # it's possible we raced against a DELETE operation. The thing we
@@ -734,7 +734,7 @@ class AuthHandler(BaseHandler):
 
     @defer.inlineCallbacks
     def validate_short_term_login_token_and_get_user_id(self, login_token):
-        yield self._check_mau_limits()
+        yield self.auth.check_auth_blocking()
         auth_api = self.hs.get_auth()
         user_id = None
         try:
@@ -907,17 +907,6 @@ class AuthHandler(BaseHandler):
         else:
             return defer.succeed(False)
 
-    @defer.inlineCallbacks
-    def _check_mau_limits(self):
-        """
-        Ensure that if mau blocking is enabled that invalid users cannot
-        log in.
-        """
-        error = AuthError(
-            403, "Monthly Active User limits exceeded", errcode=Codes.MAU_LIMIT_EXCEEDED
-        )
-        yield self.auth.check_auth_blocking(error)
-
 
 @attr.s
 class MacaroonGenerator(object):
diff --git a/synapse/handlers/register.py b/synapse/handlers/register.py
index 706ed8c292db01eafbc9c25f12ba19ab849b1e4f..8cf0a36a8f8e5ff902d5dc7ae5b4a20b9e15147d 100644
--- a/synapse/handlers/register.py
+++ b/synapse/handlers/register.py
@@ -540,7 +540,7 @@ class RegistrationHandler(BaseHandler):
         Do not accept registrations if monthly active user limits exceeded
          and limiting is enabled
         """
-        error = RegistrationError(
-            403, "Monthly Active User limits exceeded", errcode=Codes.MAU_LIMIT_EXCEEDED
-        )
-        yield self.auth.check_auth_blocking(error)
+        try:
+            yield self.auth.check_auth_blocking()
+        except AuthError as e:
+            raise RegistrationError(e.code, e.message, e.errcode)
diff --git a/synapse/storage/monthly_active_users.py b/synapse/storage/monthly_active_users.py
index 6def6830d00279e0bb9c95c1f6a405548ce3dcc8..135837507a14ce8073cfac0d71f811cae963e7e7 100644
--- a/synapse/storage/monthly_active_users.py
+++ b/synapse/storage/monthly_active_users.py
@@ -54,7 +54,7 @@ class MonthlyActiveUsersStore(SQLBaseStore):
                 """
             txn.execute(sql, (self.hs.config.max_mau_value,))
 
-        res = yield self.runInteraction("reap_monthly_active_users", _reap_users)
+        yield self.runInteraction("reap_monthly_active_users", _reap_users)
         # It seems poor to invalidate the whole cache, Postgres supports
         # 'Returning' which would allow me to invalidate only the
         # specific users, but sqlite has no way to do this and instead
@@ -64,7 +64,6 @@ class MonthlyActiveUsersStore(SQLBaseStore):
         # something about it if and when the perf becomes significant
         self._user_last_seen_monthly_active.invalidate_all()
         self.get_monthly_active_count.invalidate_all()
-        return res
 
     @cached(num_args=0)
     def get_monthly_active_count(self):
diff --git a/tests/api/test_auth.py b/tests/api/test_auth.py
index 54bdf28663f9d8174a0733d2b75f5ccabea42391..e963963c730adc894eff8753f5210c2d4aff252c 100644
--- a/tests/api/test_auth.py
+++ b/tests/api/test_auth.py
@@ -452,12 +452,8 @@ class AuthTestCase(unittest.TestCase):
         lots_of_users = 100
         small_number_of_users = 1
 
-        error = AuthError(
-            403, "MAU Limit Exceeded", errcode=Codes.MAU_LIMIT_EXCEEDED
-        )
-
         # Ensure no error thrown
-        yield self.auth.check_auth_blocking(error)
+        yield self.auth.check_auth_blocking()
 
         self.hs.config.limit_usage_by_mau = True
 
@@ -466,10 +462,10 @@ class AuthTestCase(unittest.TestCase):
         )
 
         with self.assertRaises(AuthError):
-            yield self.auth.check_auth_blocking(error)
+            yield self.auth.check_auth_blocking()
 
         # Ensure does not throw an error
         self.store.get_monthly_active_count = Mock(
             return_value=defer.succeed(small_number_of_users)
         )
-        yield self.auth.check_auth_blocking(error)
+        yield self.auth.check_auth_blocking()
diff --git a/tests/handlers/test_register.py b/tests/handlers/test_register.py
index 6b5b8b3772a454c50d82525cf0868256027edfe5..4ea59a58de260f8499868e6d90818b9aaf222e5e 100644
--- a/tests/handlers/test_register.py
+++ b/tests/handlers/test_register.py
@@ -104,7 +104,6 @@ class RegistrationTestCase(unittest.TestCase):
         self.store.get_monthly_active_count = Mock(
             return_value=defer.succeed(self.lots_of_users)
         )
-
         with self.assertRaises(RegistrationError):
             yield self.handler.get_or_create_user("requester", 'b', "display_name")