Found during investigating why Gajim can't connect to livejournal.com Jabber server.
When client sends stanza server does not understand, such as
<iq from="email@example.com/Gajim" type="get" id="152"> <query xmlns="jabber:iq:private"> <storage xmlns="storage:metacontacts" /> </query> </iq>
server responds with the stanza
<iq firstname.lastname@example.org/Gajim' type='error' id='152'> </iq>
However, RFC 3920 22.214.171.124 states:
An IQ stanza of type "error" SHOULD include the child element contained in the associated "get" or "set" and MUST include an <error/> child; for details, see Stanza Errors (Section 9.3).
Seems that Gajim is confused by missing <error/> child in the reply.