diff --git a/CHANGES.md b/CHANGES.md
index dbef6ab6c79eafe2ac8facc06088d5af29dee42f..de8ce2625b71159ac4450e9625f980eb97c718ca 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,12 @@
+Synapse 1.20.0rc3 (2020-09-11)
+==============================
+
+Bugfixes
+--------
+
+- Fix a bug introduced in v1.20.0rc1 that the wrong exception was raised when invalid JSON data is encountered. ([\#8291](https://github.com/matrix-org/synapse/issues/8291))
+
+
 Synapse 1.20.0rc2 (2020-09-09)
 ==============================
 
diff --git a/changelog.d/8291.bugfix b/changelog.d/8291.bugfix
deleted file mode 100644
index bc01d26f53e52dbf4a39438041519cbd9f29300a..0000000000000000000000000000000000000000
--- a/changelog.d/8291.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix a bug introduced in v1.20.0rc1 that the wrong exception was raised when invalid JSON data is encountered.
diff --git a/synapse/__init__.py b/synapse/__init__.py
index 7e8731f86ac15fe7093c3fdcf2d361f08ca91591..bf0bf192a56aae392cf04f4bc2ddc7a287b47038 100644
--- a/synapse/__init__.py
+++ b/synapse/__init__.py
@@ -48,7 +48,7 @@ try:
 except ImportError:
     pass
 
-__version__ = "1.20.0rc2"
+__version__ = "1.20.0rc3"
 
 if bool(os.environ.get("SYNAPSE_TEST_PATCH_LOG_CONTEXTS", False)):
     # We import here so that we don't have to install a bunch of deps when