diff --git a/changelog.d/11969.misc b/changelog.d/11969.misc
new file mode 100644
index 0000000000000000000000000000000000000000..60a12d4032eca661b5ab6529ae10390d84199ded
--- /dev/null
+++ b/changelog.d/11969.misc
@@ -0,0 +1 @@
+Unpin frozendict but exclude the known bad version 2.1.2.
diff --git a/synapse/python_dependencies.py b/synapse/python_dependencies.py
index 4f99096df395528a914285b83b7e420178ad7562..86162e0f2c65d8be5ba6b8b0ec2f34908cad23aa 100644
--- a/synapse/python_dependencies.py
+++ b/synapse/python_dependencies.py
@@ -51,7 +51,7 @@ REQUIREMENTS = [
     # we use the TYPE_CHECKER.redefine method added in jsonschema 3.0.0
     "jsonschema>=3.0.0",
     # frozendict 2.1.2 is broken on Debian 10: https://github.com/Marco-Sulla/python-frozendict/issues/41
-    "frozendict>=1,<2.1.2",
+    "frozendict>=1,!=2.1.2",
     "unpaddedbase64>=1.1.0",
     "canonicaljson>=1.4.0",
     # we use the type definitions added in signedjson 1.1.