The return logic fails due to the additional API steps in messageContentPolicy, if not only msgBodyAs is updated in the API. The onChanged listener is fired twice (or multiple times) due to the addtitinal API steps for disableRemoteContent and/or attachmentsInline.