The /ban command incorrectly uses nickname instead of JID
The /ban command will auto-complete its parameter from the occupant nicknames, not from the occupant JIDs.
/ban nickname will send the nickname, not the JID to the server:
<iq id='81791c2da1654967ac2dd2671d07e1dc' type='set' xml:lang='en' from='georg@****' firstname.lastname@example.org'> <query xmlns='http://jabber.org/protocol/muc#admin'> <item nick='banned_nickname' affiliation='outcast'/> </query> </iq>
This is VERBOTEN according to XEP-0045:
An admin or owner can ban one or more users from a room. The ban MUST be performed based on the occupant's bare JID.
A short-term solution might be to auto-complete the occupant real bare JID instead of the nickname, a long-term solution would be to replace the nickname with the respective JID.