1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

XF 1.4 Conversation Not Viewable by all Participants

Discussion in 'Troubleshooting and Problems' started by arn, Jun 4, 2015.

  1. arn

    arn Active Member


    I recently imported from vB -> Xenforo using Big Board Importer.

    We are having an issue where.

    - Someone replies to an old PM (pre Xenforo)
    - The recipient gets the email notification about the new Conversation with full text
    - If they click on the link, they can't access the conversation ("Conversation not found")

    I just tested this with someone I know. He received the conversation email, but he can't view it on board. I can view the same url on my side.

    - I rebuilt conversations and it didn't help
    - What can I do to further troubleshoot this?

  2. Mike

    Mike XenForo Developer Staff Member

    That sounds like an issue with the big board importer. Specifically, it sounds like there's a record in xf_conversation_recipient but not in xf_conversation_user. This is a legitimate situation, but it depends on the recipient_state. It doesn't happen when that state is "active", which is what I think is happening here. It may be best to handle this through the big board importer, but it may involve a query to find these cases and set the recipient state to deleted (which would re-add the conversation on reply).
  3. arn

    arn Active Member

    @Mike thanks for some details.

    Screen Shot 2015-06-04 at 7.03.00 PM.png

    Can you be a little clearer on what the proper state should be?

    This is the mysql info on the conversation I responded to, and is presently in the state where I can read it, but the other user can't.

  4. Mike

    Mike XenForo Developer Staff Member

    Because there's no xf_conversation_user record, the recipient_state in xf_conversation_recipient for user_id 492569 should likely be "deleted". (It could be "deleted_ignored", but that's an not how it would be imported so doesn't really count here.)

    Basically, you want to find entries in xf_conversation_recipient where the recipient_state is "active" and there's no record in xf_conversation_user (based on the conversation_id and owner_user_id matching the recipient table) and change the corresponding recipient_state to "deleted". This could probably be done in a single query, though it's potentially going to be very slow as it'll be crunching a lot of data.
  5. arn

    arn Active Member

    @Mike thanks. I think I follow.

    Is it possible to go the other way, by inserting a new record into xf_conversation_user for "active" xf_conversation_recipient records? Seems it would be a matter of duplicating the xf_conversion_user record and making sure it has the right owner_user_id.

  6. Mike

    Mike XenForo Developer Staff Member

    It's possible, but it's going to be more difficult as there are various denormalized fields there (that relate to data in the xf_conversation_master table). If you want to go down that route, it'd pretty much have to be done as a script I think (though I haven't tried to analyze the SQL necessary in too much detail).

Share This Page