There is a minor bug preventing IQ Remove being forwarded on to external servers correctly.
In the function IQRosterHandler > removeItem
There is an else at the bottom with the code:
// Recipient is remote so we just forward the packet to them
String serverDomain = localServer.getServerInfo().getXMPPDomain();
// Check if the recipient may be hosted by this server
if (!recipient.getDomain().contains(serverDomain)) {
// **TODO** Implete when s2s is implemented
}
Packet removePacket = createRemoveForward(sender, recipient);
else {
router.route(removePacket);
}
That should all be removed and simply replaced with:
Packet removePacket = createRemoveForward(sender, recipient);
router.route(removePacket);
As you can see the if statement was incorrect and causing the IQ packet to never be forwarded when it should be.
Thanks
Daniel