element-hq / element-hq/synapse
Synapse has accepted a power levels event with a malformed `notifications` field into current state
- Dominant language
- Python
- Stars
- 4.6k
- Forks
- 600
- Avg merge
- 5d 22h
- Merged PRs (30d)
- 51
Description
This issue has been migrated from [#14349](https://github.com/matrix-org/synapse/issues/14349).
---
### Description
Got this:
```
2022-11-02 09:11:36,627 - synapse.http.server - 123 - ERROR - PUT-135075- Failed handle request via 'RoomSendEventRestServlet':
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 1660, in _inlineCallbacks
result = current_context.run(gen.send, result)
StopIteration: [{'event_id': '$TrLPKO9P_8gk83KOmnp0U3JrDgHucIcbMz7JMSuyX5A', 'depth': 1499}]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
[...]
File "/usr/lib/python3/dist-packages/synapse/push/bulk_push_rule_evaluator.py", line 296, in action_for_event_by_user
for user_id, level in notification_levels.items():
AttributeError: 'int' object has no attribute 'items'
```
### Steps to reproduce
This was a response to a m.room.message, which may have been misformatted?
### Homeserver
grin.hu
### Synapse Version
1.69.0
### Installation Method
Other (please mention below)
### Platform
Debian package from debian.
OS: Debian/bookworm (and some sid due to deps), amd64.
### Relevant log output
```shell
2022-11-02 09:11:36,627 - synapse.http.server - 123 - ERROR - PUT-135075- Failed handle request via 'RoomSendEventRestServlet':
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 1660, in _inlineCallbacks
result = current_context.run(gen.send, result)
StopIteration: [{'event_id': '$TrLPKO9P_8gk83KOmnp0U3JrDgHucIcbMz7JMSuyX5A', 'depth': 1499}]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/synapse/http/server.py", line 306, in _async_render_wrapper
callback_return = await self._async_render(request)
File "/usr/lib/python3/dist-packages/synapse/http/server.py", line 512, in _async_render
callback_return = await raw_callback_return
File "/usr/lib/python3/dist-packages/synapse/rest/client/room.py", line 353, in on_POST
) = await self.event_creation_handler.create_and_send_nonmember_event(
File "/usr/lib/python3/dist-packages/synapse/handlers/message.py", line 1020, in create_and_send_nonmember_event
ev = await self.handle_new_client_event(
File "/usr/lib/python3/dist-packages/synapse/util/metrics.py", line 113, in measured_func
r = await func(self, *args, **kwargs)
File "/usr/lib/python3/dist-packages/synapse/handlers/message.py", line 1382, in handle_new_client_event
result, _ = await make_deferred_yieldable(
File "/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 1660, in _inlineCallbacks
result = current_context.run(gen.send, result)
File "/usr/lib/python3/dist-packages/synapse/handlers/message.py", line 1436, in _persist_events
await self._bulk_push_rule_evaluator.action_for_event_by_user(
File "/usr/lib/python3/dist-packages/synapse/util/metrics.py", line 113, in measured_func
r = await func(self, *args, **kwargs)
File "/usr/lib/python3/dist-packages/synapse/push/bulk_push_rule_evaluator.py", line 296, in action_for_event_by_user
for user_id, level in notification_levels.items():
AttributeError: 'int' object has no attribute 'items'
```
### Anything else that would be useful to know?
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.