diff --git a/CHANGES.md b/CHANGES.md
index 9f6e29631df60b32a49386289df7754e8c12bf1a..142cf5381e61904d2dbcd9d48fe0e2868d764fee 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,88 @@
+Synapse 1.50.0rc1 (2022-01-05)
+==============================
+
+Features
+--------
+
+- Allow guests to send state events per [MSC3419](https://github.com/matrix-org/matrix-doc/pull/3419). ([\#11378](https://github.com/matrix-org/synapse/issues/11378))
+- Add experimental support for part of MSC3202: allowing application services to masquerade as specific devices. ([\#11538](https://github.com/matrix-org/synapse/issues/11538))
+- Add admin API to get users' account data. ([\#11664](https://github.com/matrix-org/synapse/issues/11664))
+- Include the room topic in the stripped state included with invites and knocking. ([\#11666](https://github.com/matrix-org/synapse/issues/11666))
+
+
+Bugfixes
+--------
+
+- Fix a long-standing bug where relations from other rooms could be included in the bundled aggregations of an event. ([\#11516](https://github.com/matrix-org/synapse/issues/11516))
+- Fix a long-standing bug which could cause `AssertionError`s to be written to the log when Synapse was restarted after purging events from the database. ([\#11536](https://github.com/matrix-org/synapse/issues/11536), [\#11642](https://github.com/matrix-org/synapse/issues/11642))
+- Fix a bug introduced in Synapse 1.17.0 where a pusher created for an email with capital letters would fail to be created. ([\#11547](https://github.com/matrix-org/synapse/issues/11547))
+- Fix a long-standing bug where responses included bundled aggregations when they should not, per [MSC2675](https://github.com/matrix-org/matrix-doc/pull/2675). ([\#11592](https://github.com/matrix-org/synapse/issues/11592), [\#11623](https://github.com/matrix-org/synapse/issues/11623))
+- Fix a long-standing bug that some unknown endpoints would return HTML error pages instead of JSON `M_UNRECOGNIZED` errors. ([\#11602](https://github.com/matrix-org/synapse/issues/11602))
+- Fix a bug introduced in Synapse 1.19.3 which could sometimes cause `AssertionError`s when backfilling rooms over federation. ([\#11632](https://github.com/matrix-org/synapse/issues/11632))
+- Fix a bug in `SimpleHttpClient.get_json` that results in the `Accept` request header being absent. ([\#11677](https://github.com/matrix-org/synapse/issues/11677))
+
+
+Improved Documentation
+----------------------
+
+- Update Synapse install command for FreeBSD as the package is now prefixed with `py38`. Contributed by @itchychips. ([\#11267](https://github.com/matrix-org/synapse/issues/11267))
+- Document the usage of refresh tokens. ([\#11427](https://github.com/matrix-org/synapse/issues/11427))
+- Add details for how to configure a TURN server when behind a NAT. Contibuted by @AndrewFerr. ([\#11553](https://github.com/matrix-org/synapse/issues/11553))
+- Add references for using Postgres to the Docker documentation. ([\#11640](https://github.com/matrix-org/synapse/issues/11640))
+- Fix the documentation link in newly-generated configuration files. ([\#11678](https://github.com/matrix-org/synapse/issues/11678))
+- Correct the documentation for `nginx` to use a case-sensitive url pattern. Fixes an error introduced in v1.21.0. ([\#11680](https://github.com/matrix-org/synapse/issues/11680))
+- Clarify SSO mapping provider documentation by writing `def` or `async def` before the names of methods, as appropriate. ([\#11681](https://github.com/matrix-org/synapse/issues/11681))
+
+
+Deprecations and Removals
+-------------------------
+
+- Replace `mock` package by its standard library version. ([\#11588](https://github.com/matrix-org/synapse/issues/11588))
+
+
+Internal Changes
+----------------
+
+- Send and handle cross-signing messages using the stable prefix. ([\#10520](https://github.com/matrix-org/synapse/issues/10520))
+- Allow specific, experimental events to be created without `prev_events`. Used by [MSC2716](https://github.com/matrix-org/matrix-doc/pull/2716). ([\#11243](https://github.com/matrix-org/synapse/issues/11243))
+- A test helper (`wait_for_background_updates`) no longer depends on classes defining a `store` property. ([\#11331](https://github.com/matrix-org/synapse/issues/11331))
+- Add type hints to `synapse.appservice`. ([\#11360](https://github.com/matrix-org/synapse/issues/11360))
+- Add missing type hints to `synapse.config` module. ([\#11480](https://github.com/matrix-org/synapse/issues/11480))
+- Add test to ensure we share the same `state_group` across the whole historical batch when using the [MSC2716](https://github.com/matrix-org/matrix-doc/pull/2716) `/batch_send` endpoint. ([\#11487](https://github.com/matrix-org/synapse/issues/11487))
+- Refactor `tests.util.setup_test_homeserver` and `tests.server.setup_test_homeserver`. ([\#11503](https://github.com/matrix-org/synapse/issues/11503))
+- Move `glob_to_regex` and `re_word_boundary` to `matrix-python-common`. ([\#11505](https://github.com/matrix-org/synapse/issues/11505), [\#11687](https://github.com/matrix-org/synapse/issues/11687))
+- Use HTTPStatus constants in place of literals in `tests.rest.client.test_auth`. ([\#11520](https://github.com/matrix-org/synapse/issues/11520))
+- Add a receipt types constant for `m.read`. ([\#11531](https://github.com/matrix-org/synapse/issues/11531))
+- Clean up `synapse.rest.admin`. ([\#11535](https://github.com/matrix-org/synapse/issues/11535))
+- Support unprefixed versions of fallback key property names. ([\#11541](https://github.com/matrix-org/synapse/issues/11541))
+- Add missing `errcode` to `parse_string` and `parse_boolean`. ([\#11542](https://github.com/matrix-org/synapse/issues/11542))
+- Use HTTPStatus constants in place of literals in `synapse.http`. ([\#11543](https://github.com/matrix-org/synapse/issues/11543))
+- Add missing type hints to storage classes. ([\#11546](https://github.com/matrix-org/synapse/issues/11546), [\#11549](https://github.com/matrix-org/synapse/issues/11549), [\#11551](https://github.com/matrix-org/synapse/issues/11551), [\#11555](https://github.com/matrix-org/synapse/issues/11555), [\#11575](https://github.com/matrix-org/synapse/issues/11575), [\#11589](https://github.com/matrix-org/synapse/issues/11589), [\#11594](https://github.com/matrix-org/synapse/issues/11594), [\#11652](https://github.com/matrix-org/synapse/issues/11652), [\#11653](https://github.com/matrix-org/synapse/issues/11653), [\#11654](https://github.com/matrix-org/synapse/issues/11654), [\#11657](https://github.com/matrix-org/synapse/issues/11657))
+- Fix an inaccurate and misleading comment in the `/sync` code. ([\#11550](https://github.com/matrix-org/synapse/issues/11550))
+- Add missing type hints to `synapse.logging.context`. ([\#11556](https://github.com/matrix-org/synapse/issues/11556))
+- Stop populating unused database column `state_events.prev_state`. ([\#11558](https://github.com/matrix-org/synapse/issues/11558))
+- Minor efficiency improvements in event persistence. ([\#11560](https://github.com/matrix-org/synapse/issues/11560))
+- Add some safety checks that storage functions are used correctly. ([\#11564](https://github.com/matrix-org/synapse/issues/11564), [\#11580](https://github.com/matrix-org/synapse/issues/11580))
+- Make `get_device` return `None` if the device doesn't exist rather than raising an exception. ([\#11565](https://github.com/matrix-org/synapse/issues/11565))
+- Split the HTML parsing code from the URL preview resource code. ([\#11566](https://github.com/matrix-org/synapse/issues/11566))
+- Remove redundant `COALESCE()`s around `COUNT()`s in database queries. ([\#11570](https://github.com/matrix-org/synapse/issues/11570))
+- Add missing type hints to `synapse.http`. ([\#11571](https://github.com/matrix-org/synapse/issues/11571))
+- Convert `EventStreamResult` from a `namedtuple` to `attrs` to improve type hints. ([\#11574](https://github.com/matrix-org/synapse/issues/11574))
+- Add [MSC2716](https://github.com/matrix-org/matrix-doc/pull/2716) and [MSC3030](https://github.com/matrix-org/matrix-doc/pull/3030) to `/versions` -> `unstable_features` to detect server support. ([\#11582](https://github.com/matrix-org/synapse/issues/11582))
+- Add type hints to `synapse/tests/rest/admin`. ([\#11590](https://github.com/matrix-org/synapse/issues/11590))
+- Drop end-of-life Python 3.6 and Postgres 9.6 from CI. ([\#11595](https://github.com/matrix-org/synapse/issues/11595))
+- Update black version and run it on all the files. ([\#11596](https://github.com/matrix-org/synapse/issues/11596))
+- Add opentracing type stubs and fix associated mypy errors. ([\#11603](https://github.com/matrix-org/synapse/issues/11603), [\#11622](https://github.com/matrix-org/synapse/issues/11622))
+- Improve opentracing support for requests which use a `ResponseCache`. ([\#11607](https://github.com/matrix-org/synapse/issues/11607))
+- Improve opentracing support for incoming HTTP requests. ([\#11618](https://github.com/matrix-org/synapse/issues/11618))
+- A number of improvements to opentracing support. ([\#11619](https://github.com/matrix-org/synapse/issues/11619))
+- Drop support for Python 3.6 and Ubuntu 18.04. ([\#11633](https://github.com/matrix-org/synapse/issues/11633))
+- Refactor the way that the `outlier` flag is set on events received over federation. ([\#11634](https://github.com/matrix-org/synapse/issues/11634))
+- Improve the error messages from  `get_create_event_for_room`. ([\#11638](https://github.com/matrix-org/synapse/issues/11638))
+- Remove redundant `get_current_events_token` method. ([\#11643](https://github.com/matrix-org/synapse/issues/11643))
+- Convert `namedtuples` to `attrs`. ([\#11665](https://github.com/matrix-org/synapse/issues/11665))
+
+
 Synapse 1.49.2 (2021-12-21)
 ===========================
 
diff --git a/changelog.d/10520.misc b/changelog.d/10520.misc
deleted file mode 100644
index a911e165da80daec896499b5e9b0006efc920271..0000000000000000000000000000000000000000
--- a/changelog.d/10520.misc
+++ /dev/null
@@ -1 +0,0 @@
-Send and handle cross-signing messages using the stable prefix.
diff --git a/changelog.d/11243.misc b/changelog.d/11243.misc
deleted file mode 100644
index 5ef7fe16d4c929320040de09cd90482b897cc426..0000000000000000000000000000000000000000
--- a/changelog.d/11243.misc
+++ /dev/null
@@ -1 +0,0 @@
-Allow specific, experimental events to be created without `prev_events`. Used by [MSC2716](https://github.com/matrix-org/matrix-doc/pull/2716).
diff --git a/changelog.d/11267.doc b/changelog.d/11267.doc
deleted file mode 100644
index 3a720158ded4a1c6019765f2dcd02819f37d674d..0000000000000000000000000000000000000000
--- a/changelog.d/11267.doc
+++ /dev/null
@@ -1 +0,0 @@
-Update Synapse install command for FreeBSD as the package is now prefixed with `py38`. Contributed by @itchychips.
diff --git a/changelog.d/11331.misc b/changelog.d/11331.misc
deleted file mode 100644
index 1ab3a6a975915a14a333559252f45b5ae77b3675..0000000000000000000000000000000000000000
--- a/changelog.d/11331.misc
+++ /dev/null
@@ -1 +0,0 @@
-A test helper (`wait_for_background_updates`) no longer depends on classes defining a `store` property.
diff --git a/changelog.d/11360.misc b/changelog.d/11360.misc
deleted file mode 100644
index 43e25720c5e25c7932fe7cbf4cd4fe9adae6e9a8..0000000000000000000000000000000000000000
--- a/changelog.d/11360.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add type hints to `synapse.appservice`.
diff --git a/changelog.d/11378.feature b/changelog.d/11378.feature
deleted file mode 100644
index 524bf84f323e1e3ddda5c44fb280dfbfec279080..0000000000000000000000000000000000000000
--- a/changelog.d/11378.feature
+++ /dev/null
@@ -1 +0,0 @@
-Allow guests to send state events per [MSC3419](https://github.com/matrix-org/matrix-doc/pull/3419).
\ No newline at end of file
diff --git a/changelog.d/11427.doc b/changelog.d/11427.doc
deleted file mode 100644
index 01cdfcf2b7e40496edc98a4edda84a4c661905e9..0000000000000000000000000000000000000000
--- a/changelog.d/11427.doc
+++ /dev/null
@@ -1 +0,0 @@
-Document the usage of refresh tokens.
\ No newline at end of file
diff --git a/changelog.d/11480.misc b/changelog.d/11480.misc
deleted file mode 100644
index aadc938b2be3a2f1048a9a2dc40b163ff904e72f..0000000000000000000000000000000000000000
--- a/changelog.d/11480.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add missing type hints to `synapse.config` module.
diff --git a/changelog.d/11487.misc b/changelog.d/11487.misc
deleted file mode 100644
index 376b9078be87d5d15926484f11fbc81127fda075..0000000000000000000000000000000000000000
--- a/changelog.d/11487.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add test to ensure we share the same `state_group` across the whole historical batch when using the [MSC2716](https://github.com/matrix-org/matrix-doc/pull/2716) `/batch_send` endpoint.
diff --git a/changelog.d/11503.misc b/changelog.d/11503.misc
deleted file mode 100644
index 03a24a9224957fd5ae4addc80cb741b186a48f48..0000000000000000000000000000000000000000
--- a/changelog.d/11503.misc
+++ /dev/null
@@ -1 +0,0 @@
-Refactor `tests.util.setup_test_homeserver` and `tests.server.setup_test_homeserver`.
\ No newline at end of file
diff --git a/changelog.d/11505.misc b/changelog.d/11505.misc
deleted file mode 100644
index 926b562fade9df8e88bc86ef032ba57a217e9014..0000000000000000000000000000000000000000
--- a/changelog.d/11505.misc
+++ /dev/null
@@ -1 +0,0 @@
-Move `glob_to_regex` and `re_word_boundary` to `matrix-python-common`.
diff --git a/changelog.d/11516.bugfix b/changelog.d/11516.bugfix
deleted file mode 100644
index 22bba93671d72e4037a4273b0e620016ac2d5d83..0000000000000000000000000000000000000000
--- a/changelog.d/11516.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix a long-standing bug where relations from other rooms could be included in the bundled aggregations of an event.
diff --git a/changelog.d/11520.misc b/changelog.d/11520.misc
deleted file mode 100644
index 2d84120e19e8e635391cce3beb1f8b23f12e9707..0000000000000000000000000000000000000000
--- a/changelog.d/11520.misc
+++ /dev/null
@@ -1 +0,0 @@
-Use HTTPStatus constants in place of literals in `tests.rest.client.test_auth`.
\ No newline at end of file
diff --git a/changelog.d/11531.misc b/changelog.d/11531.misc
deleted file mode 100644
index ed6ef3bb3e56bff12f9216d280e711509e3a69b9..0000000000000000000000000000000000000000
--- a/changelog.d/11531.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add a receipt types constant for `m.read`.
diff --git a/changelog.d/11535.misc b/changelog.d/11535.misc
deleted file mode 100644
index 580ac354ab7e344883f82f19813af73c4711aa23..0000000000000000000000000000000000000000
--- a/changelog.d/11535.misc
+++ /dev/null
@@ -1 +0,0 @@
-Clean up `synapse.rest.admin`.
\ No newline at end of file
diff --git a/changelog.d/11536.bugfix b/changelog.d/11536.bugfix
deleted file mode 100644
index 4a1b00725479fe028301a00b19cc8c4ea71efe8d..0000000000000000000000000000000000000000
--- a/changelog.d/11536.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix a long-standing bug which could cause `AssertionError`s to be written to the log when Synapse was restarted after purging events from the database.
diff --git a/changelog.d/11538.feature b/changelog.d/11538.feature
deleted file mode 100644
index b6229e2b4522263902fd024e136ea8aaeac91104..0000000000000000000000000000000000000000
--- a/changelog.d/11538.feature
+++ /dev/null
@@ -1 +0,0 @@
-Add experimental support for MSC3202: allowing application services to masquerade as specific devices.
\ No newline at end of file
diff --git a/changelog.d/11541.misc b/changelog.d/11541.misc
deleted file mode 100644
index 31c72c2a20d0d7b50fc77e9a2aafab138807388d..0000000000000000000000000000000000000000
--- a/changelog.d/11541.misc
+++ /dev/null
@@ -1 +0,0 @@
-Support unprefixed versions of fallback key property names.
diff --git a/changelog.d/11542.misc b/changelog.d/11542.misc
deleted file mode 100644
index f61416503766ddd3267acf4daca2927cf58cafaf..0000000000000000000000000000000000000000
--- a/changelog.d/11542.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add missing `errcode` to `parse_string` and `parse_boolean`.
\ No newline at end of file
diff --git a/changelog.d/11543.misc b/changelog.d/11543.misc
deleted file mode 100644
index 99817d71a433972b1c044c9b47fd92820a09d7f8..0000000000000000000000000000000000000000
--- a/changelog.d/11543.misc
+++ /dev/null
@@ -1 +0,0 @@
-Use HTTPStatus constants in place of literals in `synapse.http`.
\ No newline at end of file
diff --git a/changelog.d/11546.misc b/changelog.d/11546.misc
deleted file mode 100644
index d451940bf21669a1450c11bad1c0ec621c65cfec..0000000000000000000000000000000000000000
--- a/changelog.d/11546.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add missing type hints to storage classes.
diff --git a/changelog.d/11547.bugfix b/changelog.d/11547.bugfix
deleted file mode 100644
index 3950c4c8d30c2aaabb292380d5b4459882afbd04..0000000000000000000000000000000000000000
--- a/changelog.d/11547.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix a bug introduced in Synapse 1.17.0 where a pusher created for an email with capital letters would fail to be created.
diff --git a/changelog.d/11549.misc b/changelog.d/11549.misc
deleted file mode 100644
index d451940bf21669a1450c11bad1c0ec621c65cfec..0000000000000000000000000000000000000000
--- a/changelog.d/11549.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add missing type hints to storage classes.
diff --git a/changelog.d/11550.misc b/changelog.d/11550.misc
deleted file mode 100644
index d5577e0b6300e2f26bb17aca2a8fe750cb9267bb..0000000000000000000000000000000000000000
--- a/changelog.d/11550.misc
+++ /dev/null
@@ -1 +0,0 @@
-Fix an inaccurate and misleading comment in the `/sync` code.
\ No newline at end of file
diff --git a/changelog.d/11551.misc b/changelog.d/11551.misc
deleted file mode 100644
index d451940bf21669a1450c11bad1c0ec621c65cfec..0000000000000000000000000000000000000000
--- a/changelog.d/11551.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add missing type hints to storage classes.
diff --git a/changelog.d/11553.doc b/changelog.d/11553.doc
deleted file mode 100644
index 810ba169286111272cea0e3cfbbfa624b3dfa261..0000000000000000000000000000000000000000
--- a/changelog.d/11553.doc
+++ /dev/null
@@ -1 +0,0 @@
-Add details for how to configure a TURN server when behind a NAT. Contibuted by @AndrewFerr.
diff --git a/changelog.d/11555.misc b/changelog.d/11555.misc
deleted file mode 100644
index d451940bf21669a1450c11bad1c0ec621c65cfec..0000000000000000000000000000000000000000
--- a/changelog.d/11555.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add missing type hints to storage classes.
diff --git a/changelog.d/11556.misc b/changelog.d/11556.misc
deleted file mode 100644
index 53b26aa676b40d1d5dc2913e8bdbba42eca49a43..0000000000000000000000000000000000000000
--- a/changelog.d/11556.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add missing type hints to `synapse.logging.context`.
diff --git a/changelog.d/11558.misc b/changelog.d/11558.misc
deleted file mode 100644
index 7c334f17e0076a8022b8a639e4f73e3b46f8791c..0000000000000000000000000000000000000000
--- a/changelog.d/11558.misc
+++ /dev/null
@@ -1 +0,0 @@
-Stop populating unused database column `state_events.prev_state`.
diff --git a/changelog.d/11560.misc b/changelog.d/11560.misc
deleted file mode 100644
index eb968167f58a78979b25803b804ae9b9ad294d82..0000000000000000000000000000000000000000
--- a/changelog.d/11560.misc
+++ /dev/null
@@ -1 +0,0 @@
-Minor efficiency improvements in event persistence.
diff --git a/changelog.d/11564.misc b/changelog.d/11564.misc
deleted file mode 100644
index 2c48e22de0dd3325530750c3633022b3ea874adb..0000000000000000000000000000000000000000
--- a/changelog.d/11564.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add some safety checks that storage functions are used correctly.
diff --git a/changelog.d/11565.misc b/changelog.d/11565.misc
deleted file mode 100644
index ddcafd32cbacedfd7a2b84a4a596c91956f923f6..0000000000000000000000000000000000000000
--- a/changelog.d/11565.misc
+++ /dev/null
@@ -1 +0,0 @@
-Make `get_device` return `None` if the device doesn't exist rather than raising an exception.
diff --git a/changelog.d/11566.misc b/changelog.d/11566.misc
deleted file mode 100644
index c48e73cd486c76eab54646abd6cbcf5378b86879..0000000000000000000000000000000000000000
--- a/changelog.d/11566.misc
+++ /dev/null
@@ -1 +0,0 @@
-Split the HTML parsing code from the URL preview resource code.
diff --git a/changelog.d/11570.misc b/changelog.d/11570.misc
deleted file mode 100644
index d9af8bdb05376d1f3a76b135c222bae5a663c682..0000000000000000000000000000000000000000
--- a/changelog.d/11570.misc
+++ /dev/null
@@ -1 +0,0 @@
-Remove redundant `COALESCE()`s around `COUNT()`s in database queries.
diff --git a/changelog.d/11571.misc b/changelog.d/11571.misc
deleted file mode 100644
index 4e396b271e8f4aa379e95c2f1d5252978d2a8be9..0000000000000000000000000000000000000000
--- a/changelog.d/11571.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add missing type hints to `synapse.http`.
diff --git a/changelog.d/11574.misc b/changelog.d/11574.misc
deleted file mode 100644
index 2b090a3780d0550ea7c85f18ac1ef2c44d409bf1..0000000000000000000000000000000000000000
--- a/changelog.d/11574.misc
+++ /dev/null
@@ -1 +0,0 @@
-Convert `EventStreamResult` from a `namedtuple` to `attrs` to improve type hints.
diff --git a/changelog.d/11575.misc b/changelog.d/11575.misc
deleted file mode 100644
index d451940bf21669a1450c11bad1c0ec621c65cfec..0000000000000000000000000000000000000000
--- a/changelog.d/11575.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add missing type hints to storage classes.
diff --git a/changelog.d/11580.misc b/changelog.d/11580.misc
deleted file mode 100644
index 2c48e22de0dd3325530750c3633022b3ea874adb..0000000000000000000000000000000000000000
--- a/changelog.d/11580.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add some safety checks that storage functions are used correctly.
diff --git a/changelog.d/11582.misc b/changelog.d/11582.misc
deleted file mode 100644
index a0291f64e271fccd7c48994ac0a558d07e77d33a..0000000000000000000000000000000000000000
--- a/changelog.d/11582.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add [MSC2716](https://github.com/matrix-org/matrix-doc/pull/2716) and [MSC3030](https://github.com/matrix-org/matrix-doc/pull/3030) to `/versions` -> `unstable_features` to detect server support.
diff --git a/changelog.d/11588.removal b/changelog.d/11588.removal
deleted file mode 100644
index f781021e11c726b80e245aaab9b6855e75c40eb5..0000000000000000000000000000000000000000
--- a/changelog.d/11588.removal
+++ /dev/null
@@ -1 +0,0 @@
-Replace `mock` package by its standard library version.
diff --git a/changelog.d/11589.misc b/changelog.d/11589.misc
deleted file mode 100644
index 8e405b92267408485277d2d8779f12f85dc2018a..0000000000000000000000000000000000000000
--- a/changelog.d/11589.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add missing type hints to storage classes.
\ No newline at end of file
diff --git a/changelog.d/11590.misc b/changelog.d/11590.misc
deleted file mode 100644
index 40e01194df19dc064c5fade78cee4bc1152c22c8..0000000000000000000000000000000000000000
--- a/changelog.d/11590.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add type hints to `synapse/tests/rest/admin`.
\ No newline at end of file
diff --git a/changelog.d/11592.bugfix b/changelog.d/11592.bugfix
deleted file mode 100644
index 4116e5dd7c7bf52d8ef93ddc4229986774ce9b4e..0000000000000000000000000000000000000000
--- a/changelog.d/11592.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix a long-standing bug where responses included bundled aggregations when they should not, per [MSC2675](https://github.com/matrix-org/matrix-doc/pull/2675).
diff --git a/changelog.d/11594.misc b/changelog.d/11594.misc
deleted file mode 100644
index d451940bf21669a1450c11bad1c0ec621c65cfec..0000000000000000000000000000000000000000
--- a/changelog.d/11594.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add missing type hints to storage classes.
diff --git a/changelog.d/11595.misc b/changelog.d/11595.misc
deleted file mode 100644
index 57e54db5a9dfb6625224b2dca0f75c886f6fa1a7..0000000000000000000000000000000000000000
--- a/changelog.d/11595.misc
+++ /dev/null
@@ -1 +0,0 @@
-Drop EOL python 3.6 and postgres 9.6 from CI.
\ No newline at end of file
diff --git a/changelog.d/11596.misc b/changelog.d/11596.misc
deleted file mode 100644
index 3064bc632d57b06beffab1ac19bfe8b21f08128e..0000000000000000000000000000000000000000
--- a/changelog.d/11596.misc
+++ /dev/null
@@ -1 +0,0 @@
-Update black version and run it on all the files.
\ No newline at end of file
diff --git a/changelog.d/11602.bugfix b/changelog.d/11602.bugfix
deleted file mode 100644
index e0dfbf1a1520ea3e14e3cdea12dfcbe8bc610c20..0000000000000000000000000000000000000000
--- a/changelog.d/11602.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix a long-standing bug that some unknown endpoints would return HTML error pages instead of JSON `M_UNRECOGNIZED` errors.
diff --git a/changelog.d/11603.misc b/changelog.d/11603.misc
deleted file mode 100644
index def24afb8d23be55a3ab66eab462ca943854f9b4..0000000000000000000000000000000000000000
--- a/changelog.d/11603.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add opentracing type stubs and fix associated mypy errors.
\ No newline at end of file
diff --git a/changelog.d/11607.misc b/changelog.d/11607.misc
deleted file mode 100644
index e82f46776364c819ee1b5abc96116f27668b02a7..0000000000000000000000000000000000000000
--- a/changelog.d/11607.misc
+++ /dev/null
@@ -1 +0,0 @@
-Improve opentracing support for requests which use a `ResponseCache`.
diff --git a/changelog.d/11618.misc b/changelog.d/11618.misc
deleted file mode 100644
index 4076b30bf7c14b4e2b8d45b922f1ee15ff77c3aa..0000000000000000000000000000000000000000
--- a/changelog.d/11618.misc
+++ /dev/null
@@ -1 +0,0 @@
-Improve opentracing support for incoming HTTP requests.
diff --git a/changelog.d/11619.misc b/changelog.d/11619.misc
deleted file mode 100644
index 2125cbddd2fdfca52d8d09d2529a5150a2807b8a..0000000000000000000000000000000000000000
--- a/changelog.d/11619.misc
+++ /dev/null
@@ -1 +0,0 @@
-A number of improvements to opentracing support.
diff --git a/changelog.d/11622.misc b/changelog.d/11622.misc
deleted file mode 100644
index def24afb8d23be55a3ab66eab462ca943854f9b4..0000000000000000000000000000000000000000
--- a/changelog.d/11622.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add opentracing type stubs and fix associated mypy errors.
\ No newline at end of file
diff --git a/changelog.d/11623.bugfix b/changelog.d/11623.bugfix
deleted file mode 100644
index 4116e5dd7c7bf52d8ef93ddc4229986774ce9b4e..0000000000000000000000000000000000000000
--- a/changelog.d/11623.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix a long-standing bug where responses included bundled aggregations when they should not, per [MSC2675](https://github.com/matrix-org/matrix-doc/pull/2675).
diff --git a/changelog.d/11632.bugfix b/changelog.d/11632.bugfix
deleted file mode 100644
index c73d41652a87b2b74f5ebec5b8b9d63d5137a852..0000000000000000000000000000000000000000
--- a/changelog.d/11632.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix a bug introduced in Synapse 1.19.3 which could sometimes cause `AssertionError`s when backfilling rooms over federation.
diff --git a/changelog.d/11633.misc b/changelog.d/11633.misc
deleted file mode 100644
index 73e814e58ef28c1f87a4e7efe19804f8be689a54..0000000000000000000000000000000000000000
--- a/changelog.d/11633.misc
+++ /dev/null
@@ -1 +0,0 @@
-Drop support for Python 3.6 and Ubuntu 18.04.
\ No newline at end of file
diff --git a/changelog.d/11634.misc b/changelog.d/11634.misc
deleted file mode 100644
index 4069cbc2f483640be12329cf3accefdd3558750b..0000000000000000000000000000000000000000
--- a/changelog.d/11634.misc
+++ /dev/null
@@ -1 +0,0 @@
-Refactor the way that the `outlier` flag is set on events received over federation.
diff --git a/changelog.d/11638.misc b/changelog.d/11638.misc
deleted file mode 100644
index 76dfb56bdac066e6f1c6c75f42d1f59f76fe21a3..0000000000000000000000000000000000000000
--- a/changelog.d/11638.misc
+++ /dev/null
@@ -1 +0,0 @@
-Improve the error messages from  `get_create_event_for_room`.
diff --git a/changelog.d/11640.doc b/changelog.d/11640.doc
deleted file mode 100644
index c4773e4f3ac532ca4d3e979caff25402f2a7d7b3..0000000000000000000000000000000000000000
--- a/changelog.d/11640.doc
+++ /dev/null
@@ -1 +0,0 @@
-Add references for using Postgres to the Docker documentation.
diff --git a/changelog.d/11642.bugfix b/changelog.d/11642.bugfix
deleted file mode 100644
index 4a1b00725479fe028301a00b19cc8c4ea71efe8d..0000000000000000000000000000000000000000
--- a/changelog.d/11642.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix a long-standing bug which could cause `AssertionError`s to be written to the log when Synapse was restarted after purging events from the database.
diff --git a/changelog.d/11643.misc b/changelog.d/11643.misc
deleted file mode 100644
index 1c3b3071f66aed2a1a8012d92b2b0c784d9f38e3..0000000000000000000000000000000000000000
--- a/changelog.d/11643.misc
+++ /dev/null
@@ -1 +0,0 @@
-Remove redundant `get_current_events_token` method.
diff --git a/changelog.d/11652.misc b/changelog.d/11652.misc
deleted file mode 100644
index 8e405b92267408485277d2d8779f12f85dc2018a..0000000000000000000000000000000000000000
--- a/changelog.d/11652.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add missing type hints to storage classes.
\ No newline at end of file
diff --git a/changelog.d/11653.misc b/changelog.d/11653.misc
deleted file mode 100644
index 8e405b92267408485277d2d8779f12f85dc2018a..0000000000000000000000000000000000000000
--- a/changelog.d/11653.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add missing type hints to storage classes.
\ No newline at end of file
diff --git a/changelog.d/11654.misc b/changelog.d/11654.misc
deleted file mode 100644
index 8e405b92267408485277d2d8779f12f85dc2018a..0000000000000000000000000000000000000000
--- a/changelog.d/11654.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add missing type hints to storage classes.
\ No newline at end of file
diff --git a/changelog.d/11657.misc b/changelog.d/11657.misc
deleted file mode 100644
index 8e405b92267408485277d2d8779f12f85dc2018a..0000000000000000000000000000000000000000
--- a/changelog.d/11657.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add missing type hints to storage classes.
\ No newline at end of file
diff --git a/changelog.d/11664.feature b/changelog.d/11664.feature
deleted file mode 100644
index df81783c66a0ce2d2903f635edd270876f71755f..0000000000000000000000000000000000000000
--- a/changelog.d/11664.feature
+++ /dev/null
@@ -1 +0,0 @@
-Add admin API to get users' account data.
\ No newline at end of file
diff --git a/changelog.d/11665.misc b/changelog.d/11665.misc
deleted file mode 100644
index e7cc8ff23f070fb85b7d5d479221ef3d29fe3f49..0000000000000000000000000000000000000000
--- a/changelog.d/11665.misc
+++ /dev/null
@@ -1 +0,0 @@
-Convert `namedtuples` to `attrs`.
diff --git a/changelog.d/11666.feature b/changelog.d/11666.feature
deleted file mode 100644
index 6f6b127e227827860d09c4f1b8a2b23b34dfc4d2..0000000000000000000000000000000000000000
--- a/changelog.d/11666.feature
+++ /dev/null
@@ -1 +0,0 @@
-Include the room topic in the stripped state included with invites and knocking.
diff --git a/changelog.d/11677.bugfix b/changelog.d/11677.bugfix
deleted file mode 100644
index 5691064a303cd432ce07aed09d7d469e60aa6793..0000000000000000000000000000000000000000
--- a/changelog.d/11677.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix wrong variable reference in `SimpleHttpClient.get_json` that results in the absence of the `Accept` header in the request.
diff --git a/changelog.d/11678.doc b/changelog.d/11678.doc
deleted file mode 100644
index dff663e78238cfddc237cbd2b1a35a3d2be78134..0000000000000000000000000000000000000000
--- a/changelog.d/11678.doc
+++ /dev/null
@@ -1 +0,0 @@
-Fix the documentation link in newly-generated configuration files.
diff --git a/changelog.d/11680.doc b/changelog.d/11680.doc
deleted file mode 100644
index 09399ad9d0e6f967dab554b2110812bb72b9b50f..0000000000000000000000000000000000000000
--- a/changelog.d/11680.doc
+++ /dev/null
@@ -1 +0,0 @@
-Correct the documentation for `nginx` to use a case-sensitive url pattern. Fixes an error introduced in v1.21.0.
diff --git a/changelog.d/11681.doc b/changelog.d/11681.doc
deleted file mode 100644
index fef70211cd7f70b12b602f275674d9c2f777a6f3..0000000000000000000000000000000000000000
--- a/changelog.d/11681.doc
+++ /dev/null
@@ -1 +0,0 @@
-Clarify SSO mapping provider documentation by writing `def` or `async def` before the names of methods, as appropriate.
\ No newline at end of file
diff --git a/changelog.d/11687.misc b/changelog.d/11687.misc
deleted file mode 100644
index 926b562fade9df8e88bc86ef032ba57a217e9014..0000000000000000000000000000000000000000
--- a/changelog.d/11687.misc
+++ /dev/null
@@ -1 +0,0 @@
-Move `glob_to_regex` and `re_word_boundary` to `matrix-python-common`.
diff --git a/debian/changelog b/debian/changelog
index ebe3e0cbf95820a083ad282ec320156d355426d9..b54c0ff3487857c680d3a6a0af3885b76cebc832 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+matrix-synapse-py3 (1.50.0~rc1) stable; urgency=medium
+
+  * New synapse release 1.50.0~rc1.
+
+ -- Synapse Packaging team <packages@matrix.org>  Wed, 05 Jan 2022 12:36:17 +0000
+
 matrix-synapse-py3 (1.49.2) stable; urgency=medium
 
   * New synapse release 1.49.2.
diff --git a/synapse/__init__.py b/synapse/__init__.py
index 95a49c20befc1bd0ae90b838bd0d99f246b72b52..92aec334e6e750feb698082b78def511c5676a03 100644
--- a/synapse/__init__.py
+++ b/synapse/__init__.py
@@ -47,7 +47,7 @@ try:
 except ImportError:
     pass
 
-__version__ = "1.49.2"
+__version__ = "1.50.0rc1"
 
 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