Though the stanza in the bug report is OK, looking closely again and again and comparing with previous stanzas reveals a difference, worth to be checked. There is a payload but no key in this stanza only a prekey. Actually this should be also properly handled. Looking further:
... <key prekey='1' ...
but '1' is also allowed by the XML standard. It turns out, Gajim accepts only 'true' here. Testing with simple
prekey = kn.getAttr('prekey') == 'true' or kn.getAttr('prekey') == '1'
fixed the issue.
The code in question has appeared since module refactoring deba7180 in February 2019.
Fixes #109 (closed)