mautrix / instagram

A Matrix-Instagram DM puppeting bridge
https://matrix.to/#/#instagram:maunium.net
GNU Affero General Public License v3.0
144 stars 28 forks source link

SerializerError: Missing value for required key `outgoing_request` in `FriendshipStatus` #142

Closed tamcore closed 8 months ago

tamcore commented 8 months ago

Since yesterday, the bridge running the v0.3.1 container image is unable to bridge messages (or at least shared reels), failing with the error bellow

[2023-11-10 19:30:06,098] [DEBUG@mau.attrs] Failed to deserialize {'following': False, 'is_bestie': False, 'is_restricted': False, 'is_feed_favorite': False} into FriendshipStatus

..redacted for brevity

Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/mautrix/types/util/serializable_attrs.py", line 212, in _dict_to_attrs
    obj = attrs_type(**new_items)
          ^^^^^^^^^^^^^^^^^^^^^^^
TypeError: FriendshipStatus.__init__() missing 1 required keyword-only argument: 'outgoing_request'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/mautrix-instagram/mauigpapi/types/thread_item.py", line 688, in deserialize
    return _dict_to_attrs(cls, data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/mautrix/types/util/serializable_attrs.py", line 198, in _dict_to_attrs
    new_items[name] = _try_deserialize(field_meta, value)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/mautrix/types/util/serializable_attrs.py", line 229, in _try_deserialize
    return _deserialize(field.type, value, field.default)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/mautrix/types/util/serializable_attrs.py", line 277, in _deserialize
    return _deserialize(args[0], value, default)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/mautrix/types/util/serializable_attrs.py", line 267, in _deserialize
    return _dict_to_attrs(cls, value, default, default_if_empty=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/mautrix/types/util/serializable_attrs.py", line 198, in _dict_to_attrs
    new_items[name] = _try_deserialize(field_meta, value)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/mautrix/types/util/serializable_attrs.py", line 229, in _try_deserialize
    return _deserialize(field.type, value, field.default)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/mautrix/types/util/serializable_attrs.py", line 267, in _deserialize
    return _dict_to_attrs(cls, value, default, default_if_empty=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/mautrix/types/util/serializable_attrs.py", line 198, in _dict_to_attrs
    new_items[name] = _try_deserialize(field_meta, value)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/mautrix/types/util/serializable_attrs.py", line 229, in _try_deserialize
    return _deserialize(field.type, value, field.default)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/mautrix/types/util/serializable_attrs.py", line 277, in _deserialize
    return _deserialize(args[0], value, default)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/mautrix/types/util/serializable_attrs.py", line 267, in _deserialize
    return _dict_to_attrs(cls, value, default, default_if_empty=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/mautrix/types/util/serializable_attrs.py", line 218, in _dict_to_attrs
    raise SerializerError(
mautrix.types.util.serializable.SerializerError: Missing value for required key outgoing_request in FriendshipStatus

Removing the outgoing_request field from the FriendshipStatus class fixed it for me, but that's most likely just a dirty workaround and would break it for other users.