diff --git a/changelog.d/6747.bugfix b/changelog.d/6747.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..c98107e741314821fbf50408c478198e98fe89d6
--- /dev/null
+++ b/changelog.d/6747.bugfix
@@ -0,0 +1 @@
+Fix bug when setting `account_validity` to an empty block in the config. Thanks to @Sorunome for reporting.
diff --git a/synapse/config/registration.py b/synapse/config/registration.py
index b873995a4984ba870bad844d1280d494f15bb5ab..9bb3beedbc1ab4647440c4f084ac7a1f1cf94264 100644
--- a/synapse/config/registration.py
+++ b/synapse/config/registration.py
@@ -29,6 +29,7 @@ class AccountValidityConfig(Config):
     def __init__(self, config, synapse_config):
         if config is None:
             return
+        super(AccountValidityConfig, self).__init__()
         self.enabled = config.get("enabled", False)
         self.renew_by_email_enabled = "renew_at" in config
 
@@ -93,7 +94,7 @@ class RegistrationConfig(Config):
             )
 
         self.account_validity = AccountValidityConfig(
-            config.get("account_validity", {}), config
+            config.get("account_validity") or {}, config
         )
 
         self.registrations_require_3pid = config.get("registrations_require_3pid", [])