XF 1.4 Conversation Not Viewable by all Participants

arn

Active member
#1
Hi,

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?

thanks
arn
 

Mike

XenForo developer
Staff member
#2
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).
 

arn

Active member
#3
@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.

arn
 

Mike

XenForo developer
Staff member
#4
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.
 

arn

Active member
#5
@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.

arn
 

Mike

XenForo developer
Staff member
#6
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).
 
Top