none
Thread-Index header changing unexpectedly

    Question

  • Dear experts,

    As far as I understood, the first 22 bytes of Thread-Index prefix should not change within a Conversation.

    In light of the aforementioned, does the following scenario seem right or buggy to you?

    We have email conversations broken apart as shown below:

    User A replies to the conversation with Letter 1

    Thread-Index: Ac4jv85MRhFu7QhERbKaF8pLydgqdwAB/D1wAADnl6AAACAQYAAC7pqwAAfVgNA=
    Message-ID: <19B63325BE2CFC46BEF700840FCF20C21DFDCE26@server.domain.com>

    Then User B replies to Letter 1 with Letter 2 and it gets a new thread index

    Thread-Index: AQJfdSYIJwWwuE6hsmpYz6axV1de1AGPBYqIAhHicsMCTkJSrgF7la7mAcuI2t6XP1GHsA==
    Message-ID: <77AA8A767669B64E98FCE3D6C3F027911E079BCF@server.domain.com>
    References: <4BD6386511C73F459815BB515507E0FA1556D688@server.domain.com>
    <D39A7BBCDCEAA9428055B009609CABCD1E0C3CB3@server.domain.com>
    <4BD6386511C73F459815BB515507E0FA1556D6A6@server.domain.com>
    <293D3F037075C941A27FC2F81EACB11F1E0D41BB@server.domain.com>
    <D39A7BBCDCEAA9428055B009609CABCD1E0C3D8E@server.domain.com>
    <19B63325BE2CFC46BEF700840FCF20C21DFDCE26@server.domain.com>
    In-Reply-To: <19B63325BE2CFC46BEF700840FCF20C21DFDCE26@server.domain.com>

    Then User A responds to Letter 2 with Letter 3 that returns the initial thread index prefix

    Thread-Index: Ac4jv85MRhFu7QhERbKaF8pLydgqdwAB/D1wAADnl6AAACAQYAAC7pqwAAfVgND//73BgP//vDQw
    Date: Mon, 18 Mar 2013 20:44:34 +0400
    Message-ID: <19B63325BE2CFC46BEF700840FCF20C21DFDCE57@server.domain.com>
    References: <4BD6386511C73F459815BB515507E0FA1556D688@server.domain.com>
    <D39A7BBCDCEAA9428055B009609CABCD1E0C3CB3@server.domain.com>
    <4BD6386511C73F459815BB515507E0FA1556D6A6@server.domain.com>
    <293D3F037075C941A27FC2F81EACB11F1E0D41BB@server.domain.com>
    <D39A7BBCDCEAA9428055B009609CABCD1E0C3D8E@server.domain.com>
    <19B63325BE2CFC46BEF700840FCF20C21DFDCE26@server.domain.com>
    <77AA8A767669B64E98FCE3D6C3F027911E079BCF@server.domain.com>
    In-Reply-To: <77AA8A767669B64E98FCE3D6C3F027911E079BCF@server.domain.com>
    

    Both users have Microsoft Outlook 2010.

    Monday, April 01, 2013 10:02 AM

All replies

  • It appears the thread index is in the context of the mailbox, which means that it will have a different index for each user but within that user's mailbox it will always be the same.  

    [string](0..33|%{[char][int](46+("686552495351636652556262185355647068516270555358646562655775 0645570").substring(($_*2),2))})-replace " "

    Monday, April 01, 2013 10:43 AM
  • Uhm... Doesn't seem so.

    1. all letters were taken from the same mailbox at the same time.
    2. there are lots of counter-examples showing that the Thread-Index is retained in the conversation regardless of who sent the email.
    3. doesn't this conjecture contradict the protocol documentation?
    4. SharePoint Discussion Board incoming Email Handler class seems to rely primarily on thread-index in deciding whether it should place a letter in the same thread or create another one.

    Any other opinions or proofs?

    Monday, April 01, 2013 1:13 PM
  • Do the messages appear as different threads in a threaded view in Outlook?

    Are there more recipients involved in the original email than just User A and User B?  

    If a conversation "forks" and becomes multiple threads among subsets of the original recipients, do those conversations all retain the same conversation index, or do they become separate threads?


    [string](0..33|%{[char][int](46+("686552495351636652556262185355647068516270555358646562655775 0645570").substring(($_*2),2))})-replace " "


    • Edited by mjolinor Monday, April 01, 2013 1:46 PM
    Monday, April 01, 2013 1:29 PM
  • The messages appear as different branches (forks) of a single conversation with the same conversation topic (Thread-Topic) and Subject. The recipients (To and CC) are the same with the sole exception of sender not included in To (when User A responds to User B, it looks as From:User A To:User B and vice versa) .
    By the way, there's an Exchange Public folder in CC if that matters.
    Monday, April 01, 2013 1:57 PM
  • So the thread forks when the recipient list changes?


    [string](0..33|%{[char][int](46+("686552495351636652556262185355647068516270555358646562655775 0645570").substring(($_*2),2))})-replace " "

    Monday, April 01, 2013 2:14 PM
  • No, not that easy. The thread in question was longer than the three messages that illustrate the problem.

    And one thing I noticed just now - User B, whose message forked was initially in CC. When User A replied back to him, the thread index restored and User B appeared in To in the third message.

    We are discussing the top three messages shown in the image.

    By the way, the third from bottom message also appears as fork, but has a compatible thread index:

    Thread-Index: Ac4jv85MRhFu7QhERbKaF8pLydgqdwAB/D1wAADnl6AAACAQYAAC7pqwAAfRYpA=
    There another person appeared on CC who never turned up with a reply to the thread.

    Monday, April 01, 2013 2:39 PM
  • Was the reply from User B that appears to have precipitated the fork a "Reply All" or just a reply to User A?

    [string](0..33|%{[char][int](46+("686552495351636652556262185355647068516270555358646562655775 0645570").substring(($_*2),2))})-replace " "

    Monday, April 01, 2013 2:50 PM
  • All of them were Reply all, one CC addition.
    Monday, April 01, 2013 3:00 PM
  • Was the change in CC at the same point where the fork occurred?

    [string](0..33|%{[char][int](46+("686552495351636652556262185355647068516270555358646562655775 0645570").substring(($_*2),2))})-replace " "

    Monday, April 01, 2013 3:04 PM
  • There were two forks: one deliberate addition to CC by Sergey K in message "3 from below" where thread index root was kept intact and one inadvertent change by Sergey B who was removed from CC in message "2 from above" as he replied to the thread.

    By the way, thanks for not dropping this conversation, appreciated!


    Monday, April 01, 2013 3:08 PM
  • Can you duplicate a thread fork under those same conditions with a new thread?  Sergey K appears to be the originator of the email that's at the root of the thread.  He may be able to make changes to the recipients without triggering a fork, but a reply from one of the recipients that has a different recipient list may be seen as a branch in the conversation.

    [string](0..33|%{[char][int](46+("686552495351636652556262185355647068516270555358646562655775 0645570").substring(($_*2),2))})-replace " "

    Monday, April 01, 2013 3:27 PM
  • I think Sergey K could provide a plethora of similar conversation threads. He was not the originator, rather a respondent. The conversation started with Andrey's message followed by Sergey M, and only then Sergey K. All three have Thread-Index with the same root.

    Monday, April 01, 2013 5:21 PM
  • I have had the same problem but maybe can shed some light based on what I saw. When I used Outlook 2010 and sent and received email and replies indeed the Conversation Index was fine and acted in shall we say a cumulative manner. The original byte code is retained always so I knew what was in what conversation no matter which user had the email or the reply or if they editted the subject line or if they forwarded it. So am I refuting what was originally posted? Maybe and maybe not   .... when I generate an email using either JAVA or C# and then do a reply either manually using Outlook or programatically using JAVA or C# the conversation index changes and is as you all say contextually the same in one users inbox. This is NOT EXPECTED BEHAVIOR and IMHO is a BUG. So far I have com eup empty on studying this deeply and am tempted to vet this with MS Support.

    I am happy yo share my JAVA and my C# with anyone ineterested. I am keen to solve this. Contact me directly:   email will be broken up to avoinbd spam

    jeannine (dot) menger (at sign) recommind (dot) com   thanks

    or post here as I am now on the thread

    Friday, September 13, 2013 2:15 PM