AnsweredAssumed Answered

“More acks than expected”, connection closed

Question asked by bsaverino on Oct 8, 2014

i am using Smack 4.0.3

 

Every once in a while I get a message on the server from the client that looks something like this:

INCOMING MESSAGE!!!!!!!!!!!!
<message id='2u650-31' to='xxxxxxxxxxx@gcm.googleapis.com/Smack0152E3A3' type='error'><error type="cancel">
<not-acceptable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text xml:lang="en" xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Received more acks than expected.</text></error><gcm xmlns="google:mobile:data">{&quot;to&quot;:&quot;ClientsRegistrationIDGoesHere&quot;,&quot;message_id&quot;:&quot;1054919404&quot;,&quot;message_type&quot;:&quot;ack&quot;}</gcm></message>

GCM PACKET
com
.bannervision.web.controller.admin.SmackCcsClient$GcmPacketExtension@6454f46b
JSON
{"to":"ClientsRegistrationIDGoesHere","message_id":"1054919404","message_type":"ack"}

 

After this error I get a stack trace that looks like this:

WARNING: Not connected anymore, echo message is not sent
org
.jivesoftware.smack.SmackException$NotConnectedException
  at org
.jivesoftware.smack.XMPPConnection.sendPacket(XMPPConnection.java:584)
  at com
.bannervision.web.controller.admin.SmackCcsClient.send(SmackCcsClient.java:106)
  at com
.bannervision.web.controller.admin.SmackCcsClient.sendDownstreamMessage(SmackCcsClient.java:84)
  at com
.bannervision.web.controller.admin.SmackCcsClient.handleUpstreamMessage(SmackCcsClient.java:228)
  at com
.bannervision.web.controller.admin.SmackCcsClient$2.processPacket(SmackCcsClient.java:409)
  at org
.jivesoftware.smack.XMPPConnection$ListenerWrapper.notifyListener(XMPPConnection.java:1233)
  at org
.jivesoftware.smack.XMPPConnection$ListenerNotification.run(XMPPConnection.java:1143)
  at java
.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
  at java
.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
  at java
.util.concurrent.FutureTask.run(FutureTask.java:166)
  at java
.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
  at java
.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
  at java
.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  at java
.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  at java
.lang.Thread.run(Thread.java:722)

Oct 08, 2014 10:36:01 PM com.bannervision.web.controller.admin.SmackCcsClient$2 processPacket
SEVERE
: Failed to process packet
org
.jivesoftware.smack.SmackException$NotConnectedException
  at org
.jivesoftware.smack.XMPPConnection.sendPacket(XMPPConnection.java:584)
  at com
.bannervision.web.controller.admin.SmackCcsClient.send(SmackCcsClient.java:106)
  at com
.bannervision.web.controller.admin.SmackCcsClient$2.processPacket(SmackCcsClient.java:415)
  at org
.jivesoftware.smack.XMPPConnection$ListenerWrapper.notifyListener(XMPPConnection.java:1233)
  at org
.jivesoftware.smack.XMPPConnection$ListenerNotification.run(XMPPConnection.java:1143)
  at java
.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
  at java
.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
  at java
.util.concurrent.FutureTask.run(FutureTask.java:166)
  at java
.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
  at java
.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
  at java
.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  at java
.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  at java
.lang.Thread.run(Thread.java:722)

 

The error that pops doesn't seem to effect anything else, everything keeps sending and coming in as it should but after this error start popping, it will continue every 5 seconds.

Question How do I catch this error? The error only appears in the xml.  Better yet how do I prevent it?

Any ideas?

Outcomes