element-hq / element-hq/synapse

Room suddenly gets unusable

Open
#19,964 0 comments 0 reactions 0 assignees View on GitHub
A-Send-Event-Endpoint A-State-Resolution T-Defect
Dominant language
Python
Stars
4.6k
Forks
600
Avg merge
5d 22h
Merged PRs (30d)
51

Description

### Description

A room suddenly stops accepting messages from federation or from client API (C2S). Happened on 1.153.0, I updated to 1.156.0 in case it fixed it, it didn't.

### Steps to reproduce

- very normal conversation

### Homeserver

another homeserver

### Synapse Version

1.156.0

### Installation Method

Docker (matrixdotorg/synapse)

### Database

Single Postgres 17 server, previously restored from a backup but a long time ago, probably before this room existed

### Workers

Multiple workers

### Platform

Docker on Debian on bare metal

### Configuration

_No response_

### Relevant log output

```shell
2026-07-15 13:59:47,521 - synapse.http.server - 147 - ERROR - PUT-328- Failed handle request via 'RoomSendEventRestServlet':
Traceback (most recent call last):
File "/usr/local/lib/python3.13/site-packages/synapse/http/server.py", line 335, in _async_render_wrapper
callback_return = await self._async_render(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/synapse/http/server.py", line 576, in _async_render
callback_return = await raw_callback_return
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/synapse/rest/client/room.py", line 506, in on_PUT
return await self.txns.fetch_or_execute_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<8 lines>...
)
^
File "/usr/local/lib/python3.13/site-packages/twisted/internet/defer.py", line 1187, in __iter__
yield self
File "/usr/local/lib/python3.13/site-packages/twisted/internet/defer.py", line 1857, in _inlineCallbacks
result = context.run(gen.send, result)
File "/usr/local/lib/python3.13/site-packages/synapse/rest/client/room.py", line 481, in _do
) = await self.event_creation_handler.create_and_send_nonmember_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
requester, event_dict, txn_id=txn_id
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/local/lib/python3.13/site-packages/synapse/handlers/message.py", line 1109, in create_and_send_nonmember_event
return await self._create_and_send_nonmember_event_locked(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<11 lines>...
)
^
File "/usr/local/lib/python3.13/site-packages/synapse/handlers/message.py", line 1156, in _create_and_send_nonmember_event_locked
event, unpersisted_context = await self.create_event(
^^^^^^^^^^^^^^^^^^^^^^^^
...<9 lines>...
)
^
File "/usr/local/lib/python3.13/site-packages/synapse/handlers/message.py", line 750, in create_event
event, unpersisted_context = await self.create_new_client_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<10 lines>...
)
^
File "/usr/local/lib/python3.13/site-packages/synapse/util/metrics.py", line 180, in measured_func
r = await func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/synapse/handlers/message.py", line 1415, in create_new_client_event
event = await builder.build(
^^^^^^^^^^^^^^^^^^^^
...<4 lines>...
)
^
File "/usr/local/lib/python3.13/site-packages/synapse/events/builder.py", line 303, in build
auth_event_ids.remove(create_event_id)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
ValueError: list.remove(x): x not in list
```

### Anything else that would be useful to know?

_No response_

Contributor guide

Open the contributing guide

Research direction

Start with synapse/events/builder.py at the auth_event_ids.remove(create_event_id) failure, then trace the event creation path through synapse/handlers/message.py and synapse/rest/client/room.py. Reproduce the reported room-send failure with the supplied traceback and determine what prevents the room from accepting client and federated messages; done means the failing room can receive messages without this exception.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.