No PubSub with User Avatars (XEP-0084) possible

Hi guys,

Im using ejabberd 17.03 as an XMPP server for implementing Cryptocat (https://github.com/cryptocat/cryptocat). Cryptocat uses the stanza.io (https://github.com/legastero/stanza.io) library. Sending encrypted messages, the device manager and the OMEMO stuff works. Unfortunately the only thing that is not working is showing the avatars. Setting the avatar at startup works. But the avatar are not published/subscribed by the users. I activated the ejabberd-mod (mod_pubsub) for creating nodes (OMEMO uses these pattern, too) tried all plugins (pep plugin is of course activated). Every startup needs to set the avatar again. I already checked the XEPs (PubSub: XEP-0060, User Avatar: XEP-0084 and XEP-0163: Personal Eventing Protocol) and tried different ejabberd versions, but no success. Here you see an excerpt from the ejabberd logs for debugging purposes. Is it a ejabberd, Cryptocat or stanza.io issue?

Thanks for your help.

07:35:03.036 [debug] route:
#iq{id = <<"8188d7c9-ffb2-4b19-8038-130cc98f8d31">>,type = error,
    lang = <<"en">>,
    from =
        {jid,<<"xxx">>,<<"localhost">>,<<>>,<<"xxx">>,<<"localhost">>,
            <<>>},
    to =
        {jid,<<"xxx">>,<<"localhost">>,
            <<"135341455680197269271491802469322946">>,<<"xxx">>,
            <<"localhost">>,<<"135341455680197269271491802469322946">>},
    sub_els =
        [{pubsub,undefined,undefined,undefined,
             {ps_publish,<<"urn:xmpp:avatar:data">>,
                 [{ps_item,<<>>,<<"04">>,[],<<>>,<<>>}]},
             undefined,undefined,undefined,undefined,undefined,undefined,
             undefined,undefined,undefined,undefined,undefined,undefined},
         #stanza_error{
             type = modify,code = 400,by = <<>>,reason = 'bad-request',
             text = undefined,
             sub_els = [{ps_error,'payload-required',undefined}]}],
    meta = #{ip => {172,17,0,1}}}

07:35:03.036 [debug] local route:
#iq{id = <<"8188d7c9-ffb2-4b19-8038-130cc98f8d31">>,type = error,
    lang = <<"en">>,
    from =
        {jid,<<"xxx">>,<<"localhost">>,<<>>,<<"xxx">>,<<"localhost">>,
            <<>>},
    to =
        {jid,<<"xxx">>,<<"localhost">>,
            <<"135341455680197269271491802469322946">>,<<"xxx">>,
            <<"localhost">>,<<"135341455680197269271491802469322946">>},
    sub_els =
        [{pubsub,undefined,undefined,undefined,
             {ps_publish,<<"urn:xmpp:avatar:data">>,
                 [{ps_item,<<>>,<<"04">>,[],<<>>,<<>>}]},
             undefined,undefined,undefined,undefined,undefined,undefined,
             undefined,undefined,undefined,undefined,undefined,undefined},
         #stanza_error{
             type = modify,code = 400,by = <<>>,reason = 'bad-request',
             text = undefined,
             sub_els = [{ps_error,'payload-required',undefined}]}],
    meta = #{ip => {172,17,0,1}}}

07:35:03.036 [debug] processing packet to full JID:
#iq{id = <<"8188d7c9-ffb2-4b19-8038-130cc98f8d31">>,type = error,
    lang = <<"en">>,
    from =
        {jid,<<"xxx">>,<<"localhost">>,<<>>,<<"xxx">>,<<"localhost">>,
            <<>>},
    to =
        {jid,<<"xxx">>,<<"localhost">>,
            <<"135341455680197269271491802469322946">>,<<"xxx">>,
            <<"localhost">>,<<"135341455680197269271491802469322946">>},
    sub_els =
        [{pubsub,undefined,undefined,undefined,
             {ps_publish,<<"urn:xmpp:avatar:data">>,
                 [{ps_item,<<>>,<<"04">>,[],<<>>,<<>>}]},
             undefined,undefined,undefined,undefined,undefined,undefined,
             undefined,undefined,undefined,undefined,undefined,undefined},
         #stanza_error{
             type = modify,code = 400,by = <<>>,reason = 'bad-request',
             text = undefined,
             sub_els = [{ps_error,'payload-required',undefined}]}],
    meta = #{ip => {172,17,0,1}}}

07:35:03.037 [debug] sending to process <0.511.0>:
#iq{id = <<"8188d7c9-ffb2-4b19-8038-130cc98f8d31">>,type = error,
    lang = <<"en">>,
    from =
        {jid,<<"xxx">>,<<"localhost">>,<<>>,<<"xxx">>,<<"localhost">>,
            <<>>},
    to =
        {jid,<<"xxx">>,<<"localhost">>,
            <<"135341455680197269271491802469322946">>,<<"xxx">>,
            <<"localhost">>,<<"135341455680197269271491802469322946">>},
    sub_els =
        [{pubsub,undefined,undefined,undefined,
             {ps_publish,<<"urn:xmpp:avatar:data">>,
                 [{ps_item,<<>>,<<"04">>,[],<<>>,<<>>}]},
             undefined,undefined,undefined,undefined,undefined,undefined,
             undefined,undefined,undefined,undefined,undefined,undefined},
         #stanza_error{
             type = modify,code = 400,by = <<>>,reason = 'bad-request',
             text = undefined,
             sub_els = [{ps_error,'payload-required',undefined}]}],
    meta = #{ip => {172,17,0,1}}}

Also reported in

Syndicate content