Response for a not-implemented custom IQ isn't "<feature-not-implemented />"

  • Smack version: 4.2.0

When a not-implemented custom IQ is sent to my app, it responds like this on Smack 4.2.0:

<iq from='user@domain/resource' to='user2@domain/resource' lang='en' id='test' type='error'>
	<error type='wait'>
		<service-unavailable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
	</error>
</iq>

Is it correct? I was expecting something like what I receive on Smack 4.1.9:

<iq from='user@domain/resource' to='user2@domain/resource' lang='en' id='test' type='error'>
	<error type='cancel'>
		<feature-not-implemented xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
	</error>
</iq>

Sorry if this thread is not actually useful but I have not found information about…

See https://download.igniterealtime.org/smack/docs/latest/javadoc/org/jivesoftware/smack/AbstractXMPPConnection.html#setUnknownIqRequestReplyMode-org.jivesoftware.smack.SmackConfiguration.UnknownIqRequestReplyMode-

the default will become feature-not-implemented in Smack 4.3.

Funny, there’s no such method in 4.2.0, but thank you I understand now what’s going on.

That’s probably because it came with 4.2.1

Nice. Waiting only for 4.2.2 to be able to use (https://issues.igniterealtime.org/browse/SMACK-779).

You could simply exclude the transitive smack-omemo(-signal) dependencies and use 4.2.1.