powered by Jive Software

Error during discovering HTTP File Upload service

Just successfully migrated my app to Alpha and found that login is not working. During login it crashes with error below.

Note that line 247 referred to in my app is conn.login()

The app was working fine with 4.3.4 just before upgrade

W/HttpFileUploadManager: Error during discovering HTTP File Upload service
    org.jivesoftware.smack.SmackException$NoResponseException: No response received within reply timeout. Timeout was 120000ms (~120s). StanzaCollector has been cancelled. Waited for response using: IQReplyFilter: iqAndIdFilter (AndFilter: (OrFilter: (IQTypeFilter: type=error, IQTypeFilter: type=result), StanzaIdFilter: id=UBG3V-2)), : fromFilter (OrFilter: (FromMatchesFilter (full): 192.168.1.101)).
        at org.jivesoftware.smack.StanzaCollector.nextResultOrThrow(StanzaCollector.java:281)
        at org.jivesoftware.smack.StanzaCollector.nextResultOrThrow(StanzaCollector.java:228)
        at org.jivesoftware.smackx.disco.ServiceDiscoveryManager.discoverInfo(ServiceDiscoveryManager.java:606)
        at org.jivesoftware.smackx.disco.ServiceDiscoveryManager.discoverInfo(ServiceDiscoveryManager.java:578)
        at org.jivesoftware.smackx.disco.ServiceDiscoveryManager.findServicesDiscoverInfo(ServiceDiscoveryManager.java:813)
        at org.jivesoftware.smackx.disco.ServiceDiscoveryManager.findServicesDiscoverInfo(ServiceDiscoveryManager.java:781)
        at org.jivesoftware.smackx.disco.ServiceDiscoveryManager.findServicesDiscoverInfo(ServiceDiscoveryManager.java:761)
        at org.jivesoftware.smackx.httpfileupload.HttpFileUploadManager.discoverUploadService(HttpFileUploadManager.java:193)
        at org.jivesoftware.smackx.httpfileupload.HttpFileUploadManager$2.authenticated(HttpFileUploadManager.java:130)
        at org.jivesoftware.smack.AbstractXMPPConnection.callConnectionAuthenticatedListener(AbstractXMPPConnection.java:1670)
        at org.jivesoftware.smack.AbstractXMPPConnection.afterSuccessfulLogin(AbstractXMPPConnection.java:753)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection.afterSuccessfulLogin(XMPPTCPConnection.java:370)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection.loginInternal(XMPPTCPConnection.java:455)
        at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:670)
        at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:627)
        at tz.co.hosannahighertech.tulonge.services.ChatManagerService$setUpConnection$1.invokeSuspend(ChatManagerService.kt:247)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:241)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:594)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.access$runSafely(CoroutineScheduler.kt:60)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:740)

@Flow is there anything I can do to fix this crash or I have to wait for the next release?

The stacktrace you are presenting does not appear to show a crash. Just a callback throwing. The connection should still be established. Or is this not the case?

Sorry for poor choice of words. App does not really crash in the true sense of the word. But after that exception connection dies and both isConnected and isAuthenticated becomes false

But this is then likely unrelated the exception you presented. And I unfortunately can not tell more without more information.

Ok, I see. What kind of information will be helpful to you? I can dedicate some time to gather it…

But after calling login on connection (under debugger) it throws that exception and connection dies right there.

Hmm, the connection should be catched in org.jivesoftware.smack.AbstractXMPPConnection.callConnectionAuthenticatedListener(AbstractXMPPConnection.java:1670), could you check with a debugger what is going on there?

1 Like

I will try to debug it point by point and see if I can get extra information

@Flow here is a full log

D/SMACK: SENT (0): 
    <stream:stream xmlns='jabber:client' to='192.168.1.101' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' from='25564464464@192.168.1.101' xml:lang='en-US'>
D/SMACK: RECV (0): ?xml version='1.0' encoding='UTF-8'?>
    <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="192.168.1.101" id="1n1ydi8dqi" xml:lang="en-US" version="1.0">
D/SMACK: RECV (0): 
    <stream:features>
      <starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls">
      </starttls>
      <mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
        <mechanism>
          PLAIN
        </mechanism>
        <mechanism>
          SCRAM-SHA-1
        </mechanism>
        <mechanism>
          OFMEET
        </mechanism>
        <mechanism>
          CRAM-MD5
        </mechanism>
        <mechanism>
          DIGEST-MD5
        </mechanism>
      </mechanisms>
      <compression xmlns="http://jabber.org/features/compress">
        <method>
          zlib
        </method>
      </compression>
      <ver xmlns="urn:xmpp:features:rosterver"/>
      <register xmlns="http://jabber.org/features/iq-register"/>
      <c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="https://www.igniterealtime.org/projects/openfire/" ver="sC7HNSLMUYvAY0z1VRet6FNlgb8="/>
    </stream:features>

D/SMACK: SENT (0): 
    <auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='SCRAM-SHA-1'>
      biwsbj0yNTU3MTc2MDE4MDQscj1cbngpLjh3e0l2dnhwNzZ5eVE4ZV4jfHI9NTEkKS57VQ==
    </auth>
D/SMACK: RECV (0): 
    <challenge xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
      cj1cbngpLjh3e0l2dnhwNzZ5eVE4ZV4jfHI9NTEkKS57VTBmYmUyY2M3LWM2ZTYtNDNmMi1iYjA4LWQ3NTgxNzgzYTIyNixzPW11NVhuL3JrcUtxajBiRTk4S1dDT0R1d0NCQzJ3RlBsLGk9NDA5Ng==
    </challenge>

D/SMACK: SENT (0): 
    <response xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>
      Yz1iaXdzLHI9XG54KS44d3tJdnZ4cDc2eXlROGVeI3xyPTUxJCkue1UwZmJlMmNjNy1jNmU2LTQzZjItYmIwOC1kNzU4MTc4M2EyMjYscD1jUWd1aW9UenRYQlY5ajBKY1JSN0lMOGJxbDA9
    </response>
D/SMACK: RECV (0): 
    <success xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
      dj1COGIvZUg0aTZUNlBIaVl2eHgzQmprYzZkckk9
    </success>
D/SMACK: SENT (0): 
    <stream:stream xmlns='jabber:client' to='192.168.1.101' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' from='25564464464@192.168.1.101' id='1n1ydi8dqi' xml:lang='en-US'>
I/chatty: uid=10275(com.example.stef.app) RenderThread identical 1 line
D/SMACK: RECV (0): ?xml version='1.0' encoding='UTF-8'?>
    <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="192.168.1.101" id="1n1ydi8dqi" xml:lang="en-US" version="1.0">
    <stream:features>
      <compression xmlns="http://jabber.org/features/compress">
        <method>
          zlib
        </method>
      </compression>
      <ver xmlns="urn:xmpp:features:rosterver"/>
      <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/>
      <session xmlns="urn:ietf:params:xml:ns:xmpp-session">
        <optional/>
      </session>
      <sm xmlns='urn:xmpp:sm:2'/>
      <sm xmlns='urn:xmpp:sm:3'/>
      <c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="https://www.igniterealtime.org/projects/openfire/" ver="sC7HNSLMUYvAY0z1VRet6FNlgb8="/>
    </stream:features>
I/chatty: uid=10275(com.example.stef.app) RenderThread identical 4 lines
D/SMACK: SENT (0): 
    <iq id='NX2Y8-1' type='set'>
      <bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>
        <resource>
          app
        </resource>
      </bind>
    </iq>
D/SMACK: RECV (0): 
    <iq type="result" id="NX2Y8-1" to="192.168.1.101/1n1ydi8dqi">
      <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind">
        <jid>
          25564464464@192.168.1.101/app
        </jid>
      </bind>
    </iq>
D/SMACK: SENT (0): 
    <enable xmlns='urn:xmpp:sm:3' resume='true'/>
D/SMACK: RECV (0): 
    <enabled xmlns="urn:xmpp:sm:3" resume="true" id="VHVsb25nZQAxbjF5ZGk4ZHFp" location="192.168.1.101" max="600"/>
D/SMACK: User logged (0): 25564464464@192.168.1.101:5222/app
W/hertech.tulong: Long monitor contention with owner Smack DefaultReactor Thread #1 (18623) at void org.jivesoftware.smack.SmackReactor$Reactor.handleScheduledActionsOrPerformSelect()(SmackReactor.java:215) waiters=0 in void org.jivesoftware.smack.SmackReactor$Reactor.handleScheduledActionsOrPerformSelect() for 5.346s
I/chatty: uid=10275(com.example.stef.app) RenderThread identical 6 lines
D/SMACK: SENT (0): 
    <iq id='NX2Y8-3' type='get'>
      <query xmlns='jabber:iq:roster'>
      </query>
    </iq>
    <iq to='192.168.1.101' id='XN2M1-1' type='get'>
      <query xmlns='http://jabber.org/protocol/disco#info' node='https://www.igniterealtime.org/projects/openfire/#sC7HNSLMUYvAY0z1VRet6FNlgb8='>
      </query>
    </iq>
I/chatty: uid=10275(com.example.stef.app) RenderThread identical 1 line
D/SMACK: RECV (0): 
    <iq type="result" id="NX2Y8-3" to="25564464464@192.168.1.101/app">
      <query xmlns="jabber:iq:roster" ver="1574178165">
        <item jid="xxxxxxxxxxxxxx@192.168.1.101" subscription="both"/>
        <item jid="xxxxxxxxxxxxxx@192.168.1.101" subscription="both"/>
        <item jid="xxxxxxxxxxxxxx@192.168.1.101" subscription="both"/>
      </query>
    </iq>
    <iq type="result" id="XN2M1-1" from="192.168.1.101" to="25564464464@192.168.1.101/app">
      <query xmlns="http://jabber.org/protocol/disco#info" node="https://www.igniterealtime.org/projects/openfire/#sC7HNSLMUYvAY0z1VRet6FNlgb8=">
        <identity category="server" name="Openfire Server" type="im"/>
        <identity category="pubsub" type="pep"/>
        <feature var="http://jabber.org/protocol/pubsub#retrieve-default"/>
        <feature var="http://jabber.org/protocol/pubsub#purge-nodes"/>
        <feature var="http://jabber.org/protocol/pubsub#subscription-options"/>
        <feature var="http://jabber.org/protocol/pubsub#outcast-affiliation"/>
        <feature var="msgoffline"/>
        <feature var="jabber:iq:register"/>
        <feature var="http://jabber.org/protocol/pubsub#delete-nodes"/>
        <feature var="http://jabber.org/protocol/pubsub#config-node"/>
        <feature var="http://jabber.org/protocol/pubsub#retrieve-items"/>
        <feature var="http://jabber.org/protocol/pubsub#auto-create"/>
        <feature var="http://jabber.org/protocol/disco#items"/>
        <feature var="http://jabber.org/protocol/pubsub#persistent-items"/>
        <feature var="http://jabber.org/protocol/pubsub#create-and-configure"/>
        <feature var="http://jabber.org/protocol/pubsub#retrieve-affiliations"/>
        <feature var="urn:xmpp:time"/>
        <feature var="http://jabber.org/protocol/pubsub#manage-subscriptions"/>
        <feature var="urn:xmpp:bookmarks-conversion:0"/>
        <feature var="http://jabber.org/protocol/offline"/>
        <feature var="http://jabber.org/protocol/pubsub#publish-options"/>
        <feature var="urn:xmpp:carbons:2"/>
        <feature var="http://jabber.org/protocol/address"/>
        <feature var="http://jabber.org/protocol/pubsub#collections"/>
        <feature var="http://jabber.org/protocol/pubsub#retrieve-subscriptions"/>
        <feature var="vcard-temp"/>
        <feature var="http://jabber.org/protocol/pubsub#subscribe"/>
        <feature var="http://jabber.org/protocol/pubsub#create-nodes"/>
        <feature var="http://jabber.org/protocol/pubsub#get-pending"/>
        <feature var="google:jingleinfo"/>
        <feature var="urn:xmpp:blocking"/>
        <feature var="http://jabber.org/protocol/pubsub#multi-subscribe"/>
        <feature var="http://jabber.org/protocol/pubsub#presence-notifications"/>
        <feature var="urn:xmpp:ping"/>
        <feature var="http://jabber.org/protocol/pubsub#item-ids"/>
        <feature var="http://jabber.org/protocol/pubsub#meta-data"/>
        <feature var="jabber:iq:roster"/>
        <feature var="http://jabber.org/protocol/pubsub#instant-nodes"/>
        <feature var="http://jabber.org/protocol/pubsub#modify-affiliations"/>
        <feature var="http://jabber.org/protocol/pubsub"/>
        <feature var="http://jabber.org/protocol/pubsub#publisher-affiliation"/>
        <feature var="http://jabber.org/protocol/pubsub#access-open"/>
        <feature var="jabber:iq:version"/>
        <feature var="http://jabber.org/protocol/pubsub#retract-items"/>
        <feature var="jabber:iq:privacy"/>
        <feature var="jabber:iq:last"/>
        <feature var="http://jabber.org/protocol/commands"/>
        <feature var="http://jabber.org/protocol/pubsub#publish"/>
        <feature var="http://jabber.org/protocol/disco#info"/>
        <feature var="jabber:iq:private"/>
        <feature var="http://jabber.org/protocol/rsm"/>
        <x xmlns="jabber:x:data" type="result">
          <field var="FORM_TYPE" type="hidden">
            <value>
              urn:xmpp:dataforms:softwareinfo
            </value>
          </field>
          <field var="os">
            <value>
              Mac OS X
            </value>
          </field>
          <field var="os_version">
            <value>
              10.13.6 x86_64 - Java 14.0.1
            </value>
          </field>
          <field var="software">
            <value>
              Openfire
            
I/chatty: uid=10275(com.example.stef.app) RenderThread identical 8 lines
W/hrowingCallbackWithHint: Parsing exception encountered. This exception will be re-thrown, leading to a disconnect. You can change this behavior by setting a different ParsingExceptionCallback using setParsingExceptionCallback(). More information an be found in AbstractXMPPConnection's javadoc.
I/chatty: uid=10275(com.example.stef.app) RenderThread identical 4 lines
D/SMACK: SENT (0): 
    <iq to='192.168.1.101' id='XN2M1-2' type='get'>
      <query xmlns='http://jabber.org/protocol/disco#info'>
      </query>
    </iq>

W/HttpFileUploadManager: Error during discovering HTTP File Upload service
    org.jivesoftware.smack.SmackException$NoResponseException: No response received within reply timeout. Timeout was 5000ms (~5s). StanzaCollector has been cancelled. Waited for response using: IQReplyFilter: iqAndIdFilter (AndFilter: (OrFilter: (IQTypeFilter: type=error, IQTypeFilter: type=result), StanzaIdFilter: id=XN2M1-2)), : fromFilter (OrFilter: (FromMatchesFilter (full): 192.168.1.101)).
        at org.jivesoftware.smack.StanzaCollector.nextResultOrThrow(StanzaCollector.java:281)
        at org.jivesoftware.smack.StanzaCollector.nextResultOrThrow(StanzaCollector.java:228)
        at org.jivesoftware.smackx.disco.ServiceDiscoveryManager.discoverInfo(ServiceDiscoveryManager.java:606)
        at org.jivesoftware.smackx.disco.ServiceDiscoveryManager.discoverInfo(ServiceDiscoveryManager.java:578)
        at org.jivesoftware.smackx.disco.ServiceDiscoveryManager.findServicesDiscoverInfo(ServiceDiscoveryManager.java:813)
        at org.jivesoftware.smackx.disco.ServiceDiscoveryManager.findServicesDiscoverInfo(ServiceDiscoveryManager.java:781)
        at org.jivesoftware.smackx.disco.ServiceDiscoveryManager.findServicesDiscoverInfo(ServiceDiscoveryManager.java:761)
        at org.jivesoftware.smackx.httpfileupload.HttpFileUploadManager.discoverUploadService(HttpFileUploadManager.java:193)
        at org.jivesoftware.smackx.httpfileupload.HttpFileUploadManager$2.authenticated(HttpFileUploadManager.java:130)
        at org.jivesoftware.smack.AbstractXMPPConnection.callConnectionAuthenticatedListener(AbstractXMPPConnection.java:1670)
        at org.jivesoftware.smack.AbstractXMPPConnection.afterSuccessfulLogin(AbstractXMPPConnection.java:753)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection.afterSuccessfulLogin(XMPPTCPConnection.java:370)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection.loginInternal(XMPPTCPConnection.java:455)
        at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:670)
        at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:627)
        at com.example.stef.app.services.ChatManagerService$setUpConnection$1.invokeSuspend(ChatManagerService.kt:320)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:241)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:594)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.access$runSafely(CoroutineScheduler.kt:60)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:740)
D/SMACK: XMPPConnection authenticated (XMPPTCPConnection[25564464464@192.168.1.101/app] (0))
D/SMACK: SENT (0): 
    <presence id='XN2M1-3'>
      <priority>
        0
      </priority>
      <c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='https://igniterealtime.org/projects/smack' ver='tUtPo6aj3mjjQWfXQO8eNy8Pwm8='/>
    </presence>
W/AbstractXMPPConnection: Connection XMPPTCPConnection[25564464464@192.168.1.101/app] (0) closed with error
    java.io.IOException: org.jivesoftware.smack.parsing.SmackParsingException: text-single fields can have at most one value, this one had 2
        at org.jivesoftware.smack.parsing.ExceptionThrowingCallback.handleUnparsableStanza(ExceptionThrowingCallback.java:36)
        at org.jivesoftware.smack.parsing.ExceptionThrowingCallbackWithHint.handleUnparsableStanza(ExceptionThrowingCallbackWithHint.java:42)
        at org.jivesoftware.smack.AbstractXMPPConnection.parseAndProcessStanza(AbstractXMPPConnection.java:1428)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection.access$600(XMPPTCPConnection.java:136)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:947)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:893)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:913)
        at java.lang.Thread.run(Thread.java:919)
     Caused by: org.jivesoftware.smack.parsing.SmackParsingException: text-single fields can have at most one value, this one had 2
        at org.jivesoftware.smackx.xdata.provider.DataFormProvider.ensureAtMostSingleValue(DataFormProvider.java:391)
        at org.jivesoftware.smackx.xdata.provider.DataFormProvider.parseSingleKindFormField(DataFormProvider.java:291)
        at org.jivesoftware.smackx.xdata.provider.DataFormProvider.parseField(DataFormProvider.java:250)
        at org.jivesoftware.smackx.xdata.provider.DataFormProvider.parse(DataFormProvider.java:89)
        at org.jivesoftware.smackx.xdata.provider.DataFormProvider.parse(DataFormProvider.java:60)
        at org.jivesoftware.smack.provider.Provider.parse(Provider.java:53)
        at org.jivesoftware.smack.util.PacketParserUtils.parseExtensionElement(PacketParserUtils.java:843)
        at org.jivesoftware.smack.util.PacketParserUtils.addExtensionElement(PacketParserUtils.java:919)
        at org.jivesoftware.smack.util.PacketParserUtils.addExtensionElement(PacketParserUtils.java:914)
        at org.jivesoftware.smackx.disco.provider.DiscoverInfoProvider.parse(DiscoverInfoProvider.java:72)
        at org.jivesoftware.smackx.disco.provider.DiscoverInfoProvider.parse(DiscoverInfoProvider.java:39)
        at org.jivesoftware.smack.provider.IqProvider.parse(IqProvider.java:40)
        at org.jivesoftware.smack.util.PacketParserUtils.parseIQ(PacketParserUtils.java:558)
        at org.jivesoftware.smack.util.PacketParserUtils.parseStanza(PacketParserUtils.java:120)
        at org.jivesoftware.smack.AbstractXMPPConnection.parseAndProcessStanza(AbstractXMPPConnection.java:1420)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection.access$600(XMPPTCPConnection.java:136) 
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:947) 
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:893) 
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:913) 
        at java.lang.Thread.run(Thread.java:919) 
D/SMACK: XMPPConnection closed due to an exception (XMPPTCPConnection[25564464464@192.168.1.101/app] (0))
    java.io.IOException: org.jivesoftware.smack.parsing.SmackParsingException: text-single fields can have at most one value, this one had 2
        at org.jivesoftware.smack.parsing.ExceptionThrowingCallback.handleUnparsableStanza(ExceptionThrowingCallback.java:36)
        at org.jivesoftware.smack.parsing.ExceptionThrowingCallbackWithHint.handleUnparsableStanza(ExceptionThrowingCallbackWithHint.java:42)
        at org.jivesoftware.smack.AbstractXMPPConnection.parseAndProcessStanza(AbstractXMPPConnection.java:1428)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection.access$600(XMPPTCPConnection.java:136)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:947)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:893)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:913)
        at java.lang.Thread.run(Thread.java:919)
     Caused by: org.jivesoftware.smack.parsing.SmackParsingException: text-single fields can have at most one value, this one had 2
        at org.jivesoftware.smackx.xdata.provider.DataFormProvider.ensureAtMostSingleValue(DataFormProvider.java:391)
        at org.jivesoftware.smackx.xdata.provider.DataFormProvider.parseSingleKindFormField(DataFormProvider.java:291)
        at org.jivesoftware.smackx.xdata.provider.DataFormProvider.parseField(DataFormProvider.java:250)
        at org.jivesoftware.smackx.xdata.provider.DataFormProvider.parse(DataFormProvider.java:89)
        at org.jivesoftware.smackx.xdata.provider.DataFormProvider.parse(DataFormProvider.java:60)
        at org.jivesoftware.smack.provider.Provider.parse(Provider.java:53)
        at org.jivesoftware.smack.util.PacketParserUtils.parseExtensionElement(PacketParserUtils.java:843)
        at org.jivesoftware.smack.util.PacketParserUtils.addExtensionElement(PacketParserUtils.java:919)
        at org.jivesoftware.smack.util.PacketParserUtils.addExtensionElement(PacketParserUtils.java:914)
        at org.jivesoftware.smackx.disco.provider.DiscoverInfoProvider.parse(DiscoverInfoProvider.java:72)
        at org.jivesoftware.smackx.disco.provider.DiscoverInfoProvider.parse(DiscoverInfoProvider.java:39)
        at org.jivesoftware.smack.provider.IqProvider.parse(IqProvider.java:40)
        at org.jivesoftware.smack.util.PacketParserUtils.parseIQ(PacketParserUtils.java:558)
        at org.jivesoftware.smack.util.PacketParserUtils.parseStanza(PacketParserUtils.java:120)
        at org.jivesoftware.smack.AbstractXMPPConnection.parseAndProcessStanza(AbstractXMPPConnection.java:1420)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection.access$600(XMPPTCPConnection.java:136) 
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:947) 
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:893) 
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:913) 
        at java.lang.Thread.run(Thread.java:919) 


@Flow are these information enough to understand what’s wrong? I can provide any other needed. I need OpenPGP encryption that comes only with Smack 4.4.x

@Flow I got another lead today. So I though why not test alpha2? So I tested and it is working fine. So the problem is introduced somewhere in a change in alpha3

D/SMACK: SENT (0): 
    <iq to='192.168.1.101' id='XN2M1-2' type='get'>
      <query xmlns='http://jabber.org/protocol/disco#info'>
      </query>
    </iq>

W/HttpFileUploadManager: Error during discovering HTTP File Upload service
    org.jivesoftware.smack.SmackException$NoResponseException: No response received within reply timeout. Timeout was 5000ms (~5s). StanzaCollector has been cancelled. Waited for response using: IQReplyFilter: iqAndIdFilter (AndFilter: (OrFilter: (IQTypeFilter: type=error, IQTypeFilter: type=result), StanzaIdFilter: id=XN2M1-2)), : fromFilter (OrFilter: (FromMatchesFilter (full): 192.168.1.101)).

It simply looks like there is no reply to this IQ request.

There is another oddity, it looks like the response of the previous IQ request, the one with id XN2M1-1, has not been fully sent yet by the server. At least the log looks like it was only but partly on the wire.

1 Like

Does that mean information is enough at least to track down the issue? I have been using alpha2 for days now with no issue at all. Since am not yet good at XMPP, I can’t make sense of much of information yet.

Happened to be OpenFire issue. I just tested on latest ejabberd 20.04 and it logged in just fine. @guus can I be helpful in helping resolving this? Openfire does not work with Smack 4.4.0 alpha3 and alpha2 logs in but OX IM does not work.

I am not been able to reproduce the failing disco#info request on Openfire 4.6.0-beta, 4.5.2 or 4.4.4.

There is an unrelated bug where Openfire 4.5.2 and older include the wrong information in the response - but a response is sent nonetheless.

This is the testcase that I wrote with the Smack Integration Tests framework:

@SmackIntegrationTest
public void test() throws Exception
{
    final DiscoverInfo result = ServiceDiscoveryManager.getInstanceFor(conOne).discoverInfo(null);
    assertNotNull(result);
}

This is the request and response from 4.6.0 beta:

10:24:22 SENT (1): 
<iq id='7X3DU-12' type='get'>
  <query xmlns='http://jabber.org/protocol/disco#info'>
  </query>
</iq>
<r xmlns='urn:xmpp:sm:3'/>
10:24:22 RECV (1): 
<iq type="result" id="7X3DU-12" from="smack-inttest-one-ctpas@laptop-guus" to="smack-inttest-one-ctpas@laptop-guus/one-ctpas">
  <query xmlns="http://jabber.org/protocol/disco#info">
    <identity category="account" type="registered"/>
    <identity category="pubsub" type="pep"/>
    <feature var="http://jabber.org/protocol/pubsub#retrieve-default"/>
    <feature var="http://jabber.org/protocol/pubsub#purge-nodes"/>
    <feature var="http://jabber.org/protocol/pubsub#subscribe"/>
    <feature var="http://jabber.org/protocol/pubsub#subscription-options"/>
    <feature var="http://jabber.org/protocol/pubsub#create-nodes"/>
    <feature var="http://jabber.org/protocol/pubsub#outcast-affiliation"/>
    <feature var="http://jabber.org/protocol/pubsub#get-pending"/>
    <feature var="http://jabber.org/protocol/pubsub#multi-subscribe"/>
    <feature var="http://jabber.org/protocol/pubsub#presence-notifications"/>
    <feature var="http://jabber.org/protocol/pubsub#delete-nodes"/>
    <feature var="http://jabber.org/protocol/pubsub#config-node"/>
    <feature var="http://jabber.org/protocol/pubsub#retrieve-items"/>
    <feature var="http://jabber.org/protocol/pubsub#filtered-notifications"/>
    <feature var="http://jabber.org/protocol/pubsub#auto-create"/>
    <feature var="http://jabber.org/protocol/pubsub#item-ids"/>
    <feature var="http://jabber.org/protocol/pubsub#meta-data"/>
    <feature var="http://jabber.org/protocol/pubsub#instant-nodes"/>
    <feature var="http://jabber.org/protocol/pubsub#modify-affiliations"/>
    <feature var="http://jabber.org/protocol/pubsub#persistent-items"/>
    <feature var="http://jabber.org/protocol/pubsub#create-and-configure"/>
    <feature var="http://jabber.org/protocol/pubsub"/>
    <feature var="http://jabber.org/protocol/pubsub#publisher-affiliation"/>
    <feature var="http://jabber.org/protocol/pubsub#access-open"/>
    <feature var="http://jabber.org/protocol/pubsub#retrieve-affiliations"/>
    <feature var="http://jabber.org/protocol/pubsub#retract-items"/>
    <feature var="http://jabber.org/protocol/pubsub#manage-subscriptions"/>
    <feature var="http://jabber.org/protocol/pubsub#auto-subscribe"/>
    <feature var="http://jabber.org/protocol/pubsub#publish-options"/>
    <feature var="http://jabber.org/protocol/pubsub#publish"/>
    <feature var="http://jabber.org/protocol/pubsub#collections"/>
    <feature var="http://jabber.org/protocol/pubsub#retrieve-subscriptions"/>
    <feature var="http://jabber.org/protocol/disco#info"/>
    <feature var="urn:xmpp:bookmarks-conversion:0"/>
  </query>
</iq>