UnicodeEncodeError: 'OpaqueString' codec can't encode character (DISALLOWED/precis_ignorable_properties)

Versions

  • OS: Manjaro Linux
  • GTK Version: 3.24.10
  • PyGObject Version: 3.32.2
  • GLib Version : 2.60.4
  • python-nbxmpp Version: 0.9.92
  • Gajim Version: 1.1.92

Traceback

Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/nbxmpp-0.9.92-py3.7.egg/nbxmpp/protocol.py", line 772, in validate_resourcepart
    return opaque.enforce(resourcepart)
  File "/usr/lib/python3.7/site-packages/precis_i18n/profile.py", line 70, in enforce
    return self.base.enforce(temp, self.name)
  File "/usr/lib/python3.7/site-packages/precis_i18n/baseclass.py", line 57, in enforce
    raise_error(codec_name, value, i, kind)
  File "/usr/lib/python3.7/site-packages/precis_i18n/baseclass.py", line 103, in raise_error
    raise UnicodeEncodeError(encoding, value, start, end, reason)
UnicodeEncodeError: 'OpaqueString' codec can't encode character '\u061c' in position 0: DISALLOWED/precis_ignorable_properties

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/gi/overrides/GLib.py", line 662, in <lambda>
    func_fdtransform = lambda _, cond, *data: callback(channel, cond, *data)
  File "/usr/lib/python3.7/site-packages/nbxmpp-0.9.92-py3.7.egg/nbxmpp/idlequeue.py", line 555, in _process_events
    return IdleQueue._process_events(self, fd, flags)
  File "/usr/lib/python3.7/site-packages/nbxmpp-0.9.92-py3.7.egg/nbxmpp/idlequeue.py", line 406, in _process_events
    obj.pollin()
  File "/usr/lib/python3.7/site-packages/nbxmpp-0.9.92-py3.7.egg/nbxmpp/transports.py", line 443, in pollin
    self._do_receive()
  File "/usr/lib/python3.7/site-packages/nbxmpp-0.9.92-py3.7.egg/nbxmpp/transports.py", line 664, in _do_receive
    self._on_receive(received)
  File "/usr/lib/python3.7/site-packages/nbxmpp-0.9.92-py3.7.egg/nbxmpp/transports.py", line 678, in _on_receive
    self.on_receive(data)
  File "/usr/lib/python3.7/site-packages/nbxmpp-0.9.92-py3.7.egg/nbxmpp/dispatcher.py", line 648, in _WaitForData
    res = self.ProcessNonBlocking(data)
  File "/usr/lib/python3.7/site-packages/nbxmpp-0.9.92-py3.7.egg/nbxmpp/dispatcher.py", line 307, in ProcessNonBlocking
    self.Stream.Parse(data)
  File "/build/python/src/Python-3.7.4/Modules/pyexpat.c", line 469, in EndElement
  File "/usr/lib/python3.7/site-packages/nbxmpp-0.9.92-py3.7.egg/nbxmpp/simplexml.py", line 642, in endtag
    self.dispatch(self._mini_dom)
  File "/usr/lib/python3.7/site-packages/nbxmpp-0.9.92-py3.7.egg/nbxmpp/dispatcher.py", line 571, in dispatch
    stanza, properties.mam = unwrap_mam(stanza, own_jid)
  File "/usr/lib/python3.7/site-packages/nbxmpp-0.9.92-py3.7.egg/nbxmpp/modules/misc.py", line 96, in unwrap_mam
    message = Message(node=forwarded.getTag('message'))
  File "/usr/lib/python3.7/site-packages/nbxmpp-0.9.92-py3.7.egg/nbxmpp/protocol.py", line 1223, in __init__
    payload=payload, timestamp=timestamp, xmlns=xmlns, node=node)
  File "/usr/lib/python3.7/site-packages/nbxmpp-0.9.92-py3.7.egg/nbxmpp/protocol.py", line 981, in __init__
    self.setFrom(self['from'])
  File "/usr/lib/python3.7/site-packages/nbxmpp-0.9.92-py3.7.egg/nbxmpp/protocol.py", line 1067, in setFrom
    self.setAttr('from', JID(val))
  File "/usr/lib/python3.7/site-packages/nbxmpp-0.9.92-py3.7.egg/nbxmpp/protocol.py", line 827, in __init__
    self.node, self.domain, self.resource = parse_jid(jid)
  File "/usr/lib/python3.7/site-packages/nbxmpp-0.9.92-py3.7.egg/nbxmpp/protocol.py", line 738, in parse_jid
    resourcepart = validate_resourcepart(resourcepart)
  File "/usr/lib/python3.7/site-packages/nbxmpp-0.9.92-py3.7.egg/nbxmpp/protocol.py", line 774, in validate_resourcepart
    raise ResourcepartNotAllowedChar
nbxmpp.protocol.ResourcepartNotAllowedChar: Not allowed character in resourcepart

Steps to reproduce the problem

Triggered by this message in xsf@muc.xmpp.org http://logs.xmpp.org/xsf/2019-09-09?p=h#2019-09-09-2977d6acb5137447 containing '\u061c'. The log following this message has some explanation.