Issues with Nick change when user is logged in from separate jIds

I am getting a 406 You are not an occupant of this chatroom. error when I send a Nick Name change stanza if the same user name is accessing a MUC from two separate places, with two separate jids. In my case, it’s from my custom web application that has the same user connecting to the same MUC from two different pages (but the each use a unique jid). it works fine if there is only one instance of the user in a MUC. Are there any known issues that cause this? Has anyone else seen this before?

Using Openfire 4.6.0 (have to use this version due to other issues)
RestAPI plugin 1.4.0
Custom web application integration using Strophe.js in .Net stack. Uses jQuery and vanilla js for this code

Openfire in 2 node cluster, This causes me to receive duplicate stanzas on nick changes but the issue also occurs when one is down and only receive single stanzas.

The nick change will work fine if the user is not accessing the room from multiple pages using different jids.

I had to change the values below because I did not want to expose sensitive data. This is a name swaps but structure is same barring typos.

For this example
user jids:

  • user.name@tnwg01a-v3170.sat.cbp.dhs.gov/jid1
  • user.name@tnwg01a-v3170.sat.cbp.dhs.gov/jid2

The stanzas come from Chrome debugger on page using jid1
jid2 never receives anything

room jid: room-name@conference.servername.full.url

I send this in order to change my nick name for jid1

<body rid='1294705190' xmlns='http://jabber.org/protocol/httpbind' sid='2lrkztwdk0'>
    <presence to='room-name@conference.servername.full.url/MyNewNickname' from='room-name@conference.servername.full.url/MyOldNickname' xmlns='jabber:client'>
        <show>chat</show>
        <status>Available</status>
        <customstanza xmlns="http://localhost/custom-stanza">
            <property1>Value</property1>
            <property2>Html Encoded Value</property2>
            ...
        </customstanza>
    </presence>
</body>

I recieve this from server to the jid1, jid2 gets nothing

<body xmlns='http://jabber.org/protocol/httpbind' ack='1294705190'>
    <presence xmlns='jabber:client' to='user.name@servername.full.url/jid1' from='room-name@conference.servername.full.url/MyNewNickname' type='error'>
        <show>chat</show>
        <status>Available</status>
        <customstanza xmlns="http://localhost/custom-stanza">
            <property1>Value</property1>
            <property2>Html Encoded Value</property2>
            ...
        </customstanza>
        <error code='406' type='modify'>
            <not-acceptable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas' />
            <text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>You are not an occupant of this chatroom.</text>
        </error>
    </presence>
</body>

Thanks for any help.

Can you please send more of the traffic (that includes the original join for each occupant of the room.

Also, there is a known issue with MUC clustering that we aim to fix in Openfire 4.7 (OF-2219). Are you experiencing the same issue if you’re not using a cluster at all?