I'm trying to make my app be a good citizen and clean up after itself. Part of this is that when I connect to XMPP, I get a list of subscriptions, compare with the information I actually need, and try to terminate the subscriptions for all nodes that I no longer need.
When I do the unsubscription immediately after the bind, instead of working out, I get these errors:
<error code="500" type="wait" xmlns="jabber:client">
<internal-server-error xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
Adding a 10 second delay doesn't take care of it either.
If at some point later, I manually trigger the unsubscription, it works just fine. Any ideas what's going on here? If we're properly bound, and the subscription manager returns subscribes nodes, shouldn't I be able to terminate the subscription immediately?