I updated my Openfire to 5.0.1 and some users keep connecting and disconnecting.
And their Speak keeps disconnecting
I updated my Openfire to 5.0.1 and some users keep connecting and disconnecting.
And their Speak keeps disconnecting
I’m sorry to hear that Josef. Without more information, it is hard to offer you any solutions. Can you please provide more data? What is different between the users that are affected by this, and those that are not? How often does the disconnect/reconnect happen? Is there anything in the log files of either Spark or Openfire when this happens? What version of Spark is affected?
Below are the Openfire and Spark logs. I captured the part where the error occurred, but if you prefer, I can send the entire file.
I couldn’t identify the differences between them, but it all started when I updated Openfire to 5.0.1.
The disconnect/reconnect happens almost instantly, like a loop.
I used Spark versions 2.9.4, 3.0.1, and 3.0.1, and they all presented the same problem.
Log Spark
jul 16, 2025 9:51:13 AM org.jivesoftware.spark.util.log.Log error
GRAVE: Unable to load private data for Gateways
org.jivesoftware.smack.SmackException$NotConnectedException: The connection XMPPTCPConnection[geraldo.junior@srv-202.gfa.associados/Spark] (0) is no longer connected. done=true smResumptionPossible=false
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketWriter.throwNotConnectedExceptionIfDoneAndResumptionNotPossible(XMPPTCPConnection.java:1439)
at org.jivesoftware.smack.tcp.XMPPTCPConnection.throwNotConnectedExceptionIfAppropriate(XMPPTCPConnection.java:374)
at org.jivesoftware.smack.AbstractXMPPConnection.sendStanza(AbstractXMPPConnection.java:720)
at org.jivesoftware.smack.AbstractXMPPConnection.createStanzaCollectorAndSend(AbstractXMPPConnection.java:844)
at org.jivesoftware.smack.AbstractXMPPConnection.createStanzaCollectorAndSend(AbstractXMPPConnection.java:830)
at org.jivesoftware.smackx.iqprivate.PrivateDataManager.getPrivateData(PrivateDataManager.java:165)
at org.jivesoftware.sparkimpl.plugin.gateways.transports.TransportUtils.lambda$static$0(TransportUtils.java:60)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
jul 16, 2025 9:51:23 AM org.jivesoftware.spark.util.log.Log error
GRAVE: Unable to load MUC Service Names.
org.jivesoftware.smack.SmackException$NotConnectedException: The connection XMPPTCPConnection[geraldo.junior@srv-202.gfa.associados/Spark] (0) is no longer connected while waiting for response with IQReplyFilter: iqAndIdFilter (AndFilter: (OrFilter: (IQTypeFilter: type=error, IQTypeFilter: type=result), StanzaIdFilter: id=uzOFn-353)), : fromFilter (OrFilter: (FromMatchesFilter (full): pubsub.srv-202.gfa.associados))
at org.jivesoftware.smack.StanzaCollector.nextResultOrThrow(StanzaCollector.java:263)
at org.jivesoftware.smack.StanzaCollector.nextResultOrThrow(StanzaCollector.java:219)
at org.jivesoftware.smackx.disco.ServiceDiscoveryManager.discoverInfo(ServiceDiscoveryManager.java:531)
at org.jivesoftware.smackx.disco.ServiceDiscoveryManager.discoverInfo(ServiceDiscoveryManager.java:505)
at org.jivesoftware.smackx.disco.ServiceDiscoveryManager.findServicesDiscoverInfo(ServiceDiscoveryManager.java:854)
at org.jivesoftware.smackx.disco.ServiceDiscoveryManager.findServicesDiscoverInfo(ServiceDiscoveryManager.java:788)
at org.jivesoftware.smackx.disco.ServiceDiscoveryManager.findServicesDiscoverInfo(ServiceDiscoveryManager.java:768)
at org.jivesoftware.smackx.disco.ServiceDiscoveryManager.findServices(ServiceDiscoveryManager.java:889)
at org.jivesoftware.smackx.muc.MultiUserChatManager.getMucServiceDomains(MultiUserChatManager.java:347)
at org.jivesoftware.spark.ui.conferences.BookmarksUI$11.construct(BookmarksUI.java:369)
at org.jivesoftware.spark.util.SwingWorker.lambda$new$1(SwingWorker.java:139)
at java.lang.Thread.run(Unknown Source)
Log Openfire
2025.07.16 09:51:23.374 TRACE [socket_c2s-worker-17]: org.jivesoftware.openfire.nio.NettyConnection - Closing NettyConnection{peer: /172.25.1.46:63251, state: CLOSED, session: LocalClientSession{address=geraldo.junior@srv-202.gfa.associados/Spark, streamID=7rc7r3di4e, status=AUTHENTICATED, isEncrypted=true, isDetached=false, serverName='srv-202.gfa.associados', isInitialized=true, hasAuthToken=true, peer address='172.25.1.46', presence='<presence id="uzOFn-44" from="geraldo.junior@srv-202.gfa.associados/Spark"><status>Online</status><priority>1</priority><c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://www.igniterealtime.org/projects/smack" ver="9LJego/jm+LdNGOFm5gPTMPapl0="></c></presence>'}, Netty channel handler context name: NettyClientConnectionHandler#0} with optional error:
<stream:error xmlns:stream="http://etherx.jabber.org/streams">
<internal-server-error xmlns="urn:ietf:params:xml:ns:xmpp-streams"/>
<text xmlns="urn:ietf:params:xml:ns:xmpp-streams">An error occurred while processing data raw inbound data.</text>
</stream:error>
2025.07.16 09:51:23.374 TRACE [socket_c2s-worker-17]: org.jivesoftware.openfire.nio.NettyConnection - Flushed any final bytes, closing connection.
2025.07.16 09:51:23.374 TRACE [socket_c2s-worker-17]: org.jivesoftware.openfire.nio.NettyConnection - Notifying close listeners.
2025.07.16 09:51:23.374 DEBUG [socket_c2s-worker-17]: org.jivesoftware.openfire.net.AbstractConnection - Notifying close listeners of connection NettyConnection{peer: /172.25.1.46:63251, state: CLOSED, session: LocalClientSession{address=geraldo.junior@srv-202.gfa.associados/Spark, streamID=7rc7r3di4e, status=CLOSED, isEncrypted=true, isDetached=false, serverName='srv-202.gfa.associados', isInitialized=true, hasAuthToken=true, peer address='172.25.1.46', presence='<presence id="uzOFn-44" from="geraldo.junior@srv-202.gfa.associados/Spark"><status>Online</status><priority>1</priority><c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://www.igniterealtime.org/projects/smack" ver="9LJego/jm+LdNGOFm5gPTMPapl0="></c></presence>'}, Netty channel handler context name: NettyClientConnectionHandler#0}
2025.07.16 09:51:23.374 TRACE [socket_c2s-worker-17]: org.jivesoftware.openfire.nio.NettyConnection - Finished closing connection.
2025.07.16 09:51:23.374 TRACE [socket_c2s-worker-17]: org.jivesoftware.openfire.nio.NettyConnectionHandler - Netty XMPP handler removed: /172.25.200.1:5222--/172.25.1.46:63251
2025.07.16 09:51:23.374 DEBUG [ForkJoinPool.commonPool-worker-2]: org.jivesoftware.openfire.SessionManager - Closing client session with address geraldo.junior@srv-202.gfa.associados/Spark and streamID 7rc7r3di4e that does not have SM resume.
2025.07.16 09:51:23.374 DEBUG [ForkJoinPool.commonPool-worker-2]: org.jivesoftware.openfire.spi.RoutingTableImpl - Adding client route geraldo.junior@srv-202.gfa.associados/Spark
2025.07.16 09:51:23.374 TRACE [ForkJoinPool.commonPool-worker-2]: org.jivesoftware.openfire.spi.RoutingTableImpl - Adding client route geraldo.junior@srv-202.gfa.associados/Spark to local routing table
2025.07.16 09:51:23.374 TRACE [ForkJoinPool.commonPool-worker-2]: org.jivesoftware.openfire.spi.LocalRoutingTable - Route 'geraldo.junior@srv-202.gfa.associados/Spark' (for pair: '{ -> geraldo.junior@srv-202.gfa.associados/Spark}') not added (was already present).
2025.07.16 09:51:23.374 TRACE [ForkJoinPool.commonPool-worker-2]: org.jivesoftware.openfire.spi.RoutingTableImpl - Adding client route ClientRoute{nodeID=9e9b6510-ec2e-4963-a68f-a5122008e0f4, available=false} to users cache under key geraldo.junior@srv-202.gfa.associados/Spark
2025.07.16 09:51:23.374 TRACE [ForkJoinPool.commonPool-worker-2]: org.jivesoftware.openfire.spi.RoutingTableImpl - Adding client full JID geraldo.junior@srv-202.gfa.associados/Spark to users sessions cache under key geraldo.junior@srv-202.gfa.associados
2025.07.16 09:51:23.375 TRACE [ForkJoinPool.commonPool-worker-2]: org.jivesoftware.openfire.csi.CsiManager - Cannot delay delivery of stanza. Push 1 stanza.
From the very first entry in the Openfire logs, it appears that Openfire is closing the client connection because it received something that it could not process. Was there anything just above this line?
Error before this line
2025.07.16 09:51:23.373 ERROR [socket_c2s-worker-17]: org.jivesoftware.openfire.nio.NettyConnectionHandler - Closing connection on /172.25.200.1:5222--/172.25.1.46:63251 due to error while processing message: <iq to='ethielle.ayres@srv-202.gfa.associados' id='uzOFn-819' type='get'><vCard xmlns='vcard-temp'/></iq>
java.lang.NoClassDefFoundError: org/jivesoftware/util/Base64
at org.igniterealtime.openfire.plugin.avatarresizer.Resizer.resizeAvatar(Resizer.java:63) ~[?:?]
at org.igniterealtime.openfire.plugin.avatarresizer.DelegateVCardProvider.loadVCard(DelegateVCardProvider.java:45) ~[?:?]
at org.jivesoftware.openfire.vcard.VCardManager.getOrLoadVCard(VCardManager.java:245) ~[xmppserver-5.0.1.jar:5.0.1]
at org.jivesoftware.openfire.vcard.VCardManager.getVCard(VCardManager.java:238) ~[xmppserver-5.0.1.jar:5.0.1]
at org.jivesoftware.openfire.handler.IQvCardHandler.handleIQ(IQvCardHandler.java:139) ~[xmppserver-5.0.1.jar:5.0.1]
at org.jivesoftware.openfire.handler.IQHandler.process(IQHandler.java:125) ~[xmppserver-5.0.1.jar:5.0.1]
at org.jivesoftware.openfire.IQRouter.handle(IQRouter.java:403) ~[xmppserver-5.0.1.jar:5.0.1]
at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:106) ~[xmppserver-5.0.1.jar:5.0.1]
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:74) ~[xmppserver-5.0.1.jar:5.0.1]
at org.jivesoftware.openfire.net.StanzaHandler.processIQ(StanzaHandler.java:392) ~[xmppserver-5.0.1.jar:5.0.1]
at org.jivesoftware.openfire.net.ClientStanzaHandler.processIQ(ClientStanzaHandler.java:90) ~[xmppserver-5.0.1.jar:5.0.1]
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:334) ~[xmppserver-5.0.1.jar:5.0.1]
at org.jivesoftware.openfire.net.StanzaHandler.processStanza(StanzaHandler.java:222) ~[xmppserver-5.0.1.jar:5.0.1]
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:114) ~[xmppserver-5.0.1.jar:5.0.1]
at org.jivesoftware.openfire.nio.NettyConnectionHandler.channelRead0(NettyConnectionHandler.java:142) ~[xmppserver-5.0.1.jar:5.0.1]
at org.jivesoftware.openfire.nio.NettyConnectionHandler.channelRead0(NettyConnectionHandler.java:50) ~[xmppserver-5.0.1.jar:5.0.1]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) ~[netty-codec-4.1.118.Final.jar:4.1.118.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) ~[netty-codec-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:289) ~[netty-handler-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.handler.traffic.AbstractTrafficShapingHandler.channelRead(AbstractTrafficShapingHandler.java:506) ~[netty-handler-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1515) ~[netty-handler-4.1.118.Final.jar:4.1.118.Final]
at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1378) ~[netty-handler-4.1.118.Final.jar:4.1.118.Final]
at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1427) ~[netty-handler-4.1.118.Final.jar:4.1.118.Final]
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) ~[netty-codec-4.1.118.Final.jar:4.1.118.Final]
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) ~[netty-codec-4.1.118.Final.jar:4.1.118.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) ~[netty-codec-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1357) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:868) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:796) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:732) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:658) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998) ~[netty-common-4.1.118.Final.jar:4.1.118.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.118.Final.jar:4.1.118.Final]
at java.lang.Thread.run(Thread.java:1583) [?:?]
Caused by: java.lang.ClassNotFoundException: org.jivesoftware.util.Base64
... 54 more
Ah! Remove the AvatarResizer plugin. You don’t need that anymore, and it’s causing problems.
Thanks