Per the document RFC 6121 section 2.3 as attached below; it does not specifically mention the requirements of an attribute ‘subscription’ during adding a roster Item that was included in Smack 4.2.1-SNAPSHOT. This however does not impact the ejabberd xmpp server correct handling of the request. I have also performed the similar test on a Pidgin client in adding a new buddy, Pidgin client sends IQ set exactly as specified per RFC 6121 section 2.3.1
============ RFC 6121 =============
2.3. Adding a Roster Item
2.3.1. Request
At any time, a client can add an item to the roster. This is done by
sending a roster set containing a new item.
C: <iq from=‘juliet@example.com/balcony’
id=‘ph1xaz53’
type=‘set’>
<item jid=‘nurse@example.com’
name=‘Nurse’>
Servants
============= aTalk log for Roster#createEntry ===============
06-09 11:35:18.756 D/aTalk: [53] impl.protocol.jabber.ServerStoredContactListJabberImpl.addContact().462 Adding contact newx@atalk.org to parent=JabberGroup.friends, childContacts=0:[]
06-09 11:35:18.766 D/SMACK: SENT (1): <item jid=‘newx@atalk.org’ name=‘newx@atalk.org’ subscription=‘none’>friends
06-09 11:35:19.116 D/SMACK: RECV (1): friends
06-09 11:35:19.126 D/SMACK: RECV (1):
06-09 11:35:19.126 D/aTalk: [47] impl.protocol.jabber.ServerStoredContactListJabberImpl.entriesAdded().1300 entriesAdded [newx@atalk.org]
06-09 11:35:19.126 D/SMACK: SENT (1): Chong Meng Enged341d7cb4d39f423989c0cf5fe8d9527be3ffde</ph oto>
06-09 11:35:19.126 D/aTalk: [47] impl.protocol.jabber.OperationSetPersistentPresenceJabberImpl.firePresenceStatu sChanged().1415 Received a status update for buddy = newx@atalk.org
06-09 11:35:19.126 D/SMACK: SENT (1):
06-09 11:35:19.156 D/SMACK: SENT (1): friends
06-09 11:35:19.246 D/SMACK: RECV (1): friends
06-09 11:35:19.266 D/SMACK: SENT (1):
06-09 11:35:19.446 D/SMACK: RECV (1): friends
06-09 11:35:19.446 D/SMACK: RECV (1):
…
=========== Pidgin XMPP Console log - during Add Buddy… ===================
C:
atalk member
friends
C:
S:
atalk member
friends
C:
S:
S:
atalk member
friends
C: