When does it log "check personal message"?

Under what circumstances, exactly, does an admin or system account trigger the “check personal message” log entry?

We have found that it doesn’t only happen when an admin actually checks another user’s PMs. It also seems to happen any time a thread is split into a PM for reasons like derailment or inflammatory posts.

Under what other circumstances will this “check personal message” log entry be recorded?

We need to nail this down because there has been a lot of tension surrounding this particular log entry type on my forum.

It believe it should be logged any time the content of a PM is visible to an admin that isn’t included on the PM… is that right @techAPJ?


Is that why sometimes we occasionally see service accounts like ‘system’ in the log as having read a personal message? Possibly when they do cleanup of some kind?

When an admin converts a topic into a private message, their browser automatically loads the PM immediately after the operation succeeds.

The participants in the private message should check the timestamp of the staff action log (which I presume you’re giving to them) to see exactly which posts were visible to the admin, which in this case should be exactly the posts that were previously public.


That’s weird - I can confirm this happening on meta.

This is coming from webhooks that fire when the first post of a topic is destroyed. The log is created before the webhook existence check happens, so it occurs even if no webhooks receive the topic content.

cc @vinothkannans - this was https://github.com/discourse/discourse/commit/8430ea927e, can you think of fixes for this? TopicView.new() is what’s creating the PM viewing action.


This commit will resolve the issue



That sounds correct to me.