Discourse topic openers separate from replies

In both Mail.app and iOS Mail (latest versions), the first message in a topic (like a TidBITS article) and the replies to that topic are separate threads. Looking at the list messages I haven’t deleted, a topic started May 28 is a single thread but one started June 7 has separate threads. @ace, maybe the change is related to the tinkering you were doing related to the TidBITS Talk Summary.

Interesting. I’m not seeing in that in Gmail right now—checking Mail here… Yeah, I think I see the same thing. However, if I do a search in Mail, it combines the conversations properly.

The cause is probably related to us switching from SendGrid to Sendy + Amazon SES (thus saving about $200 per month). The headers must be slightly different in a way that Mail doesn’t understand. I’m not sure I can think of any way to work around this since it would seem to be a Mail-specific problem. Plus, we don’t have full control over headers.

A topic-starting message from 5/31, when threading still worked contains this:

Message-ID: <topic/8883@talk.tidbits.com>

While my message starting this topic has this:

Message-ID: <0100016b6b37a230-92ef9d2a-ded7-43f2-b9a8-e5b9e574cf2e-000000@email.amazonses.com>

which doesn’t match the Message-ID references found in these headers in your reply:

 In-Reply-To: <topic/9031@talk.tidbits.com>
 References: <topic/9031@talk.tidbits.com>

My guess this is the problem. I think all the replies remain threaded because they all contain matching References. Topic-starting messages don’t contain a References header. If Amazon SES can avoid replacing Message-IDs or if Discourse can include a self-referential References header in topic-starting messages, the problem could go away.

I think this is a problem in Mail because it tries to be an old-school (proper) mail agent, using headers like this for threading, while Gmail is “dumb” and just uses the Subject.

Good sleuthing. I’ll see if the Discourse developers can comment.

After searching in meta.discourse.org, I found that this has been an issue in the past.

I’ll have to see if Peter Lewis knows more about it now.

1 Like

Outlook splits them out also. But if you search, they merge back into a conversation. Mostly. Haven’t done a study.

This list of header fields that Amazon SES will accept only one of says it overrides any Message-ID you provide. There’s also a header called Original-Message-ID but that’s unlikely to be used for threading purposes in Apple Mail.

If you can’t include Discourse-set Message-IDs, that leaves other headers. In Peter Lewis’s thread, he indicated Apple’s Mail doesn’t use the References header for threading, only In-Reply-To. For his “hack” to work (i.e. include a self-referential In-Reply-To header in the topic-starting message), all replies would either need to use the address format that refers to the whole thread (<topic/9031@talk.tidbits.com>) or the self-referential In-Reply-To would need to include the individual post id (<topic/9031/20822@talk.tidbits.com>) and every reply would need to use the same format. Would that work if the reply was written in email, not in the web forum? I assume emailed replies would use a different address in the header but maybe Discourse can set the In-Reply-To correctly for all the email recipients.

I just realized “Best fonts for reading” is being threaded together with The Dark Side of Dark Mode, the topic from which it was split. The messages from the two topics sure don’t seem to share headers in common to explain this. It happens on my Mac and my phone.

It looks like I can create custom headers, but not dynamic ones that would change per message.

If we can figure out what Mail is doing, this would be a good time to report a bug.