Skip to content

Infinite loading with jabber:iq:auth #3950

@IS4Code

Description

@IS4Code

Describe the bug
I am implementing an XMPP server to communicate over WebSocket, however after converse.js finishes autentication, it never loads. All it does is send ping messages.

To Reproduce

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://cdn.conversejs.org/12.0.0/dist/converse.min.css">
<script src="https://cdn.conversejs.org/12.0.0/dist/converse.min.js" charset="utf-8"></script>
</head>
<body>
<script>
converse.initialize({
  authentication: 'login',
  locked_domain: "localhost",
  discover_connection_methods: false,
  view_mode: 'fullscreen',
  show_background: true,
  i18n: "en",
  
  auto_login: true,
  jid: "test@localhost",
  websocket_url: "ws://localhost/xmpp/",
  password: "123",
  loglevel: 'debug',
  
});
</script>
</body>
</html>

Have a server respond in accordance to the following log messages:

converse-headless.esm.js:2  2026-03-01T10:45:04.640Z DEBUG: Status changed to: CONNECTING
converse-headless.esm.js:2 Websocket open
converse-headless.esm.js:2  2026-03-01T10:45:04.946Z DEBUG: <open xmlns="urn:ietf:params:xml:ns:xmpp-framing" to="localhost" version="1.0"/>
converse-headless.esm.js:2  2026-03-01T10:45:04.950Z DEBUG: <open xmlns="urn:ietf:params:xml:ns:xmpp-framing" version="1.0" xml:lang="en" id="8a166b300d1e4f049fe43cdf6fad25a5" from="localhost"/>
converse-headless.esm.js:2 _connect_cb was called
converse-headless.esm.js:2  2026-03-01T10:45:04.950Z DEBUG: <features xmlns="http://etherx.jabber.org/streams"><auth xmlns="http://jabber.org/features/iq-auth"/><ver xmlns="urn:xmpp:features:rosterver"/><sub xmlns="urn:xmpp:features:pre-approval"/><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/></features>
converse-headless.esm.js:2  2026-03-01T10:45:04.950Z DEBUG: Status changed to: AUTHENTICATING
converse-headless.esm.js:2  2026-03-01T10:45:04.951Z DEBUG: <iq type="get" to="localhost" id="_auth_1" xmlns="jabber:client"><query xmlns="jabber:iq:auth"><username>test</username></query></iq>
converse-headless.esm.js:2  2026-03-01T10:45:04.953Z DEBUG: <iq xmlns="jabber:client" type="result" from="localhost" id="_auth_1"><query xmlns="jabber:iq:auth"><username/><resource/><password/></query></iq>
converse-headless.esm.js:2  2026-03-01T10:45:04.953Z DEBUG: <iq type="set" id="_auth_2" xmlns="jabber:client"><query xmlns="jabber:iq:auth"><username>test</username><password>123</password><resource>converse.js-22395867</resource></query></iq>
converse-headless.esm.js:2  2026-03-01T10:45:04.956Z DEBUG: <iq xmlns="jabber:client" type="result" from="localhost" to="test@localhost/converse.js-22395867" id="_auth_2"/>
converse-headless.esm.js:2  2026-03-01T10:45:04.956Z DEBUG: Status changed to: CONNECTED
converse-headless.esm.js:2  2026-03-01T10:45:04.956Z DEBUG: Connected
converse-headless.esm.js:2  2026-03-01T10:45:12.762Z DEBUG: <iq type="get" to="localhost" id="e42c32e3-c2f7-4eca-8876-0cc16702edae:ping" xmlns="jabber:client"><ping xmlns="urn:xmpp:ping"/></iq>
converse-headless.esm.js:2  2026-03-01T10:45:12.766Z DEBUG: <iq xmlns="jabber:client" type="result" from="localhost" to="test@localhost/converse.js-22395867" id="e42c32e3-c2f7-4eca-8876-0cc16702edae:ping"/>

Expected behavior
After being authenticated and fully connected, the client should send the initial presence stanza and request the roster.

Screenshots
Image

Environment (please complete the following information):

  • Tested on Chrome and Firefox, desktop
  • Converse.js 12.0.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions