element-hq / element-hq/synapse

Synapse has accepted a power levels event with a malformed `notifications` field into current state

Open
#14,349 0 comments 0 reactions 0 assignees View on GitHub
O-Uncommon S-Minor T-Defect
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.