Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package matrix-synapse for openSUSE:Factory checked in at 2025-10-08 18:14:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/matrix-synapse (Old) and /work/SRC/openSUSE:Factory/.matrix-synapse.new.11973 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "matrix-synapse" Wed Oct 8 18:14:17 2025 rev:143 rq:1309684 version:1.139.2 Changes: -------- --- /work/SRC/openSUSE:Factory/matrix-synapse/matrix-synapse.changes 2025-10-07 18:32:04.962871439 +0200 +++ /work/SRC/openSUSE:Factory/.matrix-synapse.new.11973/matrix-synapse.changes 2025-10-08 18:17:46.558601255 +0200 @@ -1,0 +2,9 @@ +Tue Oct 7 18:08:56 UTC 2025 - Marcus Rueckert <[email protected]> + +- Update to 1.139.2 + - Update `KeyUploadServlet` to handle case where client sends + `device_keys: null` (#19023) + + Introduced in 1.139.1 + +------------------------------------------------------------------- Old: ---- matrix-synapse-1.139.1.obscpio New: ---- matrix-synapse-1.139.2.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ matrix-synapse-test.spec ++++++ --- /var/tmp/diff_new_pack.I5VrVF/_old 2025-10-08 18:17:49.274715312 +0200 +++ /var/tmp/diff_new_pack.I5VrVF/_new 2025-10-08 18:17:49.274715312 +0200 @@ -27,7 +27,7 @@ %define pkgname matrix-synapse Name: %{pkgname}-test -Version: 1.139.1 +Version: 1.139.2 Release: 0 Summary: Test package for %{pkgname} License: AGPL-3.0-or-later ++++++ matrix-synapse.spec ++++++ --- /var/tmp/diff_new_pack.I5VrVF/_old 2025-10-08 18:17:49.314716992 +0200 +++ /var/tmp/diff_new_pack.I5VrVF/_new 2025-10-08 18:17:49.318717159 +0200 @@ -158,7 +158,7 @@ %define pkgname matrix-synapse %define eggname matrix_synapse Name: %{pkgname} -Version: 1.139.1 +Version: 1.139.2 Release: 0 Summary: Matrix protocol reference homeserver License: AGPL-3.0-or-later ++++++ _service ++++++ --- /var/tmp/diff_new_pack.I5VrVF/_old 2025-10-08 18:17:49.398720519 +0200 +++ /var/tmp/diff_new_pack.I5VrVF/_new 2025-10-08 18:17:49.402720687 +0200 @@ -4,7 +4,7 @@ <param name="versionformat">@PARENT_TAG@</param> <param name="url">https://github.com/element-hq/synapse.git</param> <param name="scm">git</param> - <param name="revision">v1.139.1</param> + <param name="revision">v1.139.2</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="versionrewrite-replacement">\1</param> <!-- ++++++ matrix-synapse-1.139.1.obscpio -> matrix-synapse-1.139.2.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/matrix-synapse-1.139.1/CHANGES.md new/matrix-synapse-1.139.2/CHANGES.md --- old/matrix-synapse-1.139.1/CHANGES.md 2025-10-07 12:58:08.000000000 +0200 +++ new/matrix-synapse-1.139.2/CHANGES.md 2025-10-07 17:30:03.000000000 +0200 @@ -1,3 +1,12 @@ +# Synapse 1.139.2 (2025-10-07) + +## Bugfixes + +- Fix a bug introduced in 1.139.1 where a client could receive an Internal Server Error if they set `device_keys: null` in the request to [`POST /_matrix/client/v3/keys/upload`](https://spec.matrix.org/v1.16/client-server-api/#post_matrixclientv3keysupload). ([\#19023](https://github.com/element-hq/synapse/issues/19023)) + + + + # Synapse 1.139.1 (2025-10-07) ## Security Fixes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/matrix-synapse-1.139.1/debian/changelog new/matrix-synapse-1.139.2/debian/changelog --- old/matrix-synapse-1.139.1/debian/changelog 2025-10-07 12:58:08.000000000 +0200 +++ new/matrix-synapse-1.139.2/debian/changelog 2025-10-07 17:30:03.000000000 +0200 @@ -1,3 +1,9 @@ +matrix-synapse-py3 (1.139.2) stable; urgency=medium + + * New Synapse release 1.139.2. + + -- Synapse Packaging team <[email protected]> Tue, 07 Oct 2025 16:29:47 +0100 + matrix-synapse-py3 (1.139.1) stable; urgency=medium * New Synapse release 1.139.1. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/matrix-synapse-1.139.1/pyproject.toml new/matrix-synapse-1.139.2/pyproject.toml --- old/matrix-synapse-1.139.1/pyproject.toml 2025-10-07 12:58:08.000000000 +0200 +++ new/matrix-synapse-1.139.2/pyproject.toml 2025-10-07 17:30:03.000000000 +0200 @@ -101,7 +101,7 @@ [tool.poetry] name = "matrix-synapse" -version = "1.139.1" +version = "1.139.2" description = "Homeserver for the Matrix decentralised comms protocol" authors = ["Matrix.org Team and Contributors <[email protected]>"] license = "AGPL-3.0-or-later" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/matrix-synapse-1.139.1/synapse/rest/client/keys.py new/matrix-synapse-1.139.2/synapse/rest/client/keys.py --- old/matrix-synapse-1.139.1/synapse/rest/client/keys.py 2025-10-07 12:58:08.000000000 +0200 +++ new/matrix-synapse-1.139.2/synapse/rest/client/keys.py 2025-10-07 17:30:03.000000000 +0200 @@ -270,7 +270,7 @@ 400, "To upload keys, you must pass device_id when authenticating" ) - if "device_keys" in body: + if "device_keys" in body and isinstance(body["device_keys"], dict): # Validate the provided `user_id` and `device_id` fields in # `device_keys` match that of the requesting user. We can't do # this directly in the pydantic model as we don't have access @@ -278,13 +278,13 @@ # # TODO: We could use ValidationInfo when we switch to Pydantic v2. # https://docs.pydantic.dev/latest/concepts/validators/#validation-info - if body["device_keys"]["user_id"] != user_id: + if body["device_keys"].get("user_id") != user_id: raise SynapseError( code=HTTPStatus.BAD_REQUEST, errcode=Codes.BAD_JSON, msg="Provided `user_id` in `device_keys` does not match that of the authenticated user", ) - if body["device_keys"]["device_id"] != device_id: + if body["device_keys"].get("device_id") != device_id: raise SynapseError( code=HTTPStatus.BAD_REQUEST, errcode=Codes.BAD_JSON, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/matrix-synapse-1.139.1/tests/rest/client/test_keys.py new/matrix-synapse-1.139.2/tests/rest/client/test_keys.py --- old/matrix-synapse-1.139.1/tests/rest/client/test_keys.py 2025-10-07 12:58:08.000000000 +0200 +++ new/matrix-synapse-1.139.2/tests/rest/client/test_keys.py 2025-10-07 17:30:03.000000000 +0200 @@ -160,6 +160,26 @@ channel.result, ) + def test_upload_keys_succeeds_when_fields_are_explicitly_set_to_null(self) -> None: + """ + This is a regression test for https://github.com/element-hq/synapse/pull/19023. + """ + device_id = "DEVICE_ID" + self.register_user("alice", "wonderland") + alice_token = self.login("alice", "wonderland", device_id=device_id) + + channel = self.make_request( + "POST", + "/_matrix/client/v3/keys/upload", + { + "device_keys": None, + "one_time_keys": None, + "fallback_keys": None, + }, + alice_token, + ) + self.assertEqual(channel.code, HTTPStatus.OK, channel.result) + class KeyQueryTestCase(unittest.HomeserverTestCase): servlets = [ ++++++ matrix-synapse.obsinfo ++++++ --- /var/tmp/diff_new_pack.I5VrVF/_old 2025-10-08 18:17:51.978828864 +0200 +++ /var/tmp/diff_new_pack.I5VrVF/_new 2025-10-08 18:17:51.998829704 +0200 @@ -1,5 +1,5 @@ name: matrix-synapse -version: 1.139.1 -mtime: 1759834688 -commit: 76b012c3f5a1d51294dabcabde31e5dce94dddf8 +version: 1.139.2 +mtime: 1759851003 +commit: 036fb875842fcc4105cdba2d23fd425df1eec3b6
