So, the big news this week is that Microsoft released Service Pack 3 (SP3) for Exchange Server 2007. This release has been anticipated for a while, given that Microsoft announced last November that SP3 would be forthcoming in the "second half of calendar year 2010." The most significant change in SP3 is that it adds full support for running Exchange 2007 on Windows Server 2008 R2. This change is important for customers who are running Exchange 2007 servers, although there's still no way to do an in-place upgrade of an Exchange 2007 server on a Server 2008 server to run on Server 2008 R2.

My attention hasn't been on service packs lately, though; it's been on an odd problem I've seen reported with increasing frequency. Apparently some Android smartphones won't sync with the Exchange 2010 implementation of Exchange ActiveSync (EAS), and this problem has been causing quite a bit of consternation to users of the affected devices because other devices work fine against the same servers, and the affected devices seem to work OK against Exchange 2007.

As far as I can tell, the HTC Droid Incredible is the primary device that suffers from this problem. I've seen reports that phones running Android 2.1 in general have the problem—and a coworker of mine has experimentally verified the problem by flashing a T-Mobile G1 with Android 2.1—but most of the yelling seems to be coming from Incredible users. (Of course, the Incredible is also the device that secretly captures screenshots of your web browsing activity and stores them in a hidden directory, so Incredible users have other things to complain about . . . but I digress.)

The sync problem with the Incredible is due to the way that its EAS client works. When an EAS device contacts an Exchange server, the Exchange server supplies it with a policy statement that tells the device what policy settings to apply. This statement is really just a chunk of XML, and the client's job is to parse the settings defined in the XML data and change any local-device settings that don't match. The server then sends a subsequent request asking, "Did you get my policy? Did you apply it?" In response, the client's supposed to send an acknowledgement back to the server that essentially says, "Yes, I applied the policy." Without that acknowledgement, there's no way for the server to know whether the client has complied.

The problem with this approach is that it depends on the client being a) honest, and b) properly implemented. Apple got into hot water after it released the iPhone 3GS when it became known that its EAS client would lie about whether it had applied the device encryption settings specified in the Exchange server policy, thus violating the "honest" requirement.

HTC seems to be violating the "properly implemented" part; the client on the Incredible apparently doesn't send the acknowledgement back to the server at all. The server keeps asking for an acknowledgement, and occasionally (and unpredictably) the HTC device will actually send one back, at which point the sync works properly.

It's hard to pin down this problem firmly for several reasons. First, many users get devices and never update their firmware, so it's possible that some of the users reporting trouble would find their problems solved with a quick device update. Second, the HTC support forums have many complaints about Exchange synchronization, but it's hard to pick out the ones that are related to this bug from problems related to user mistakes or server misconfigurations, so I wouldn't consider the forums a reliable source of complaints.

HTC's official statement on this so far is that they don't support Exchange 2010. I've asked their PR people some follow-up questions about this problem but haven't heard back from them yet. In the meantime, the easiest solution is to enable the Allow non-provisionable devices option in the default EAS mailbox policy, but this isn't a great solution because it can allow other devices that ignore policy settings to sync, too. A better solution is probably to use the new Exchange 2010 EAS management features to allow only specific noncompliant devices for specific mailboxes. I'll be writing more about these features in the future, and hopefully HTC will fix their problems reasonably soon.