Hmm, the issue with calling the resultHandler.done() as part of the registration request is that the operation-id does not stay locked, so a future operation could conflict with the remote notification sender. It does make this a bit more complicated though, so i took the liberty to just write a prototype and pushed it here: https://github.com/emuckenhuber/jboss-as/commit/0ffc18289c3ece86672ecad90d1f5d23cbdaa6b6

The changes on the server side handler are mainly to avoid registering a channelCloseHandler - since this would be leaking if the handler gets unregistered, but the channel remains open. I  haven't sent much time on this, but i hope this is helpful.