HTTP_500 with a PocketPC device trying to sync with Exchange

An HTTP_500 error on the PocketPC is a very generic error.  It typically means IIS passed something to Exchange, Exchange went off to do what it is supposed to do...but Exchange failed, Exchange then turns around and reports the error to IIS (like, "hey, I can't find that mailbox") and IIS says, "huh?  I don't understand what you said...let me throw an HTTP_500 to the user".  Basically IIS can't understand the error that Exchange is reporting.  This is most commonly caused by something not quite right with the user's SMTP address.  Here is a step by step on how we resolved the issue:

1.  Create a new user and logon with that new user (test) with Outlook Web Access.  This logon creates the mailbox.

2.  Fire up my PocketPC Emulator and test.  Result: HTTP_500

3.  Check the Exchange Recipient Policy and ensure the Active Directory Domain name is listed (domain.local).  Domain.local was missing from the Recipient Policy.  Added it and forced an update.  Checked the user "test" to make sure he got the new "domain.local" smtp address, he did.  Try to sync with emulator with the "test" account.  Result: Success.

4.  Looked at the "Problem User" (let's call him Malak...hey I picked up Star Wars Knights of the Old Republic for $20 last week) in Active Directory.  Malak had a custom SMTP address and the "update based on Recipient Policy" was uncheck on his account.  He had Malak@domain.com and DarthMalak@domain.com.  He did not have "domain.local" which I added on step 3 above.  I checked the box for "update based on Recipient Policy" and forced the Recipient Policy to propagate.  I then removed all the SMTP addresses on Malak's account EXCEPT Malak@domain.local.  I then went to the Recipient Policy and did another "update now".  I then checked Malak's account again and he had both SMTP addresses; malak@domain.com and malak@domain.local.  Try to sync with emulator with the Malak account.  Result: Success

5.  Based on what I know about Exchange and the PocketPC...Exchange does some weird magic in the background to find a mailbox...Malak in this example.  It does some combination of the LHS and RHS of the @ sign (Left Hand Side and Right Hand Side) to find his mailbox in the database.  Well, this can be problematic with multiple SMTP addresses and Recipient Policies.  Here is a public article that discusses the workaround:  https://support.microsoft.com/?id=886346  This behavior has changed (for the better, I might add) with Exchange 2003 Service Pack 2.  Note the customer had already implemented the SMTPProxy value in the article above with no success (we did delete the SMTPProxy key).  We opted to install Exchange 2003 Service Pack 2.  Once installed, we added DarthMalak@domain.com and were still able to sync.  Try to sync with emulator with the Malak account.  Result: Success

 

Petergal