That one was quite complicated ![]()
https://github.com/discourse/discourse/pull/36918
The gist of it, is that in DMs where threading is disabled (which is the default), a reply would not be correctly counted towards “unread” because we internally create a thread to keep track of the reply chain.