[Standards] XEP-0313: Treatment of type=groupchat in user archive with or without <store/> hint

Kevin Smith kevin.smith at isode.com
Thu Nov 23 17:33:11 UTC 2017

On 23 Nov 2017, at 17:11, Daniel Gultsch <daniel at gultsch.de> wrote:
> Hi,
> today I stumbled over an interesting behaviour of ejabberd MAM implementation.
> While ejabberd usually does not store messages of type groupchat into
> the users archive (ignoring the »A server SHOULD also include messages
> of type 'groupchat' that have a <body>« statement from the XEP.) it
> does store them if they contain a <store/> hint. Meaning the general
> rule of not storing type groupchat is overwritten by the existence of
> the hint. The hint is added by Conversations in an attempt to get the
> MUC archive server! to store OMEMO messages and chat markers.
> For me it doesn't ever make sense to store type=groupchat messages in
> the user archive. That archive will be incomplete, thus forcing me to
> query the MUC servers archive upon join anyway.
> And even worse the messages will be included in a normal catchup (when
> I don't necessarily want them)
> I think traditionally most implementations have never stored groupchat
> messages in the user archiving making the statement »A server SHOULD
> also include messages of type 'groupchat' that have a <body>, but
> where such history is accessible through another method (e.g. through
> an archive on the MUC JID), a server MAY exclude these from the
> archive.« very confusing. How should the user archive even know?
> This opens up two questions;
> 1) Should that statement be changed to something like 'group chat
> messages should never be stored in the users archive'
> 2) If we don't want to store group chat messages should the <store/>
> hint overwrite that behaviour? If not how can we make the definition
> of the <store/> hint clearer to communicate that this should not be
> the case?
> How are other implementations handling this and what would client
> developers want?

The main use case for having gc messages in the archive is “I remember I saw someone say something interesting about X, so now I’m going to search my archive for X to find it”, which really needs to have all the messages you’ve seen available, rather than splitting them between multiple sources, some of which won’t support MAM.

I agree that for “catch-up”, it’s not particularly useful, but knowing exactly what messages you’ve seen is.

Perhaps filtering MAM queries on type would be sensible.


More information about the Standards mailing list