Traceback on roster push
Please first check if another issue has been opened for your problem
Versions
Gajim 1.4.0-dev1 (flatpak)
GTK Version: 3.24.25
GLib Version: 2.66.7
PyGObject Version: 3.38.0
python-nbxmpp Version: 3.0.0-dev1
Steps to reproduce the problem
- Add a contact from another client, so the server
<iq type='set' id='5vC8N6ut'> <query xmlns='jabber:iq:roster' ver='13'> <item subscription='none' jid='test@example.com'/> </query> </iq>
Expected behavior
The contact is added to the roster. If 'Show Offline Contacts' is enabled it should show up in the listing.
Actual behavior
Nothing noticed in the UI. In the console:
Traceback (most recent call last):
File "/app/lib/python3.8/site-packages/nbxmpp/dispatcher.py", line 464, in dispatch
handler['func'](self._client, stanza, properties)
File "/app/lib/python3.8/site-packages/gajim/common/modules/roster.py", line 144, in _roster_push_received
self._store_roster()
File "/app/lib/python3.8/site-packages/gajim/common/modules/roster.py", line 74, in _store_roster
app.storage.cache.store_roster(self._account, self._data)
File "/app/lib/python3.8/site-packages/gajim/common/storage/base.py", line 32, in func_wrapper
result = func(self, *args, **kwargs)
File "/app/lib/python3.8/site-packages/gajim/common/storage/cache.py", line 198, in store_roster
serialized = json.dumps(roster)
File "/usr/lib/python3.8/json/__init__.py", line 231, in dumps
return _default_encoder.encode(obj)
File "/usr/lib/python3.8/json/encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python3.8/json/encoder.py", line 257, in iterencode
return _iterencode(o, 0)
TypeError: keys must be str, int, float, bool or None, not JID