TL;DR – Disable IPv6 for the network adapter
I moonlight as the CIO of a startup owned by some friends in my spare time and decided last year that the best solution for a new business that didn’t want to invest any capital in computer hardware was cloud computing. Their needs were fairly basic – email access. No need for a dedicated Exchange box sitting in the non-existent server room. However, access via Outlook and mobile devices was mandatory, as was calendar and contact sharing, so we opted to to go with a hosted Exchange solution rather than a service offering only POP or IMAP. I chose Office 365 P1 (http://office.microsoft.com/en-us/business/office-365-small-business-small-business-software-FX103887194.aspx). At $6/month per-person, it was a no-brainer.
I set this up for my friends on their smartphones and laptops (and my own phone as well) and have been very happy with it since then. However, Microsoft ran some upgrades 2 weeks ago (one of the major upgrades being moving to Exchange 2013). During this upgrade (and afterwards), the company’s President was having issues with Outlook not connecting. It worked fine on his phone, and we were usually able to get in through Outlook Web App, but Outlook was always hit or miss. During one of these periods, I was unable to get into OWA myself, so I chocked it up to upgrade issues and told my friend to let me know if the problem persisted. It did, so I went to work.
After testing out a few things within Outlook, I eventually removed the email account from the profile and attempted to re-add it. This was a bad idea, as now Outlook would hang when trying to open the profile (which contained other important data). Eventually I just removed the problematic account and we were able to get into the profile, but he still needed the account back. This shouldn’t have been a difficult thing to do. By default, Office 365 configures DNS settings for your domain, including Autodiscover, and my friend is using Outlook 2010 which should have worked flawlessly with this, but this was not the case.
The problem we were having was getting Outlook to configure the Exchange settings. We would type the email address and password, and sometimes Outlook would autoconfigure itself using the Autodiscover settings, othertimes it would throw an error about “unable to establish an encrypted connection”. After a few tries we manually input the server settings, but we were still unable to make the account work. The strangest part is that after seemingly setting itself up properly using Autodiscover (which validated to me that we had the right settings), Outlook would hang when trying to authenticate, ie it would either not pop-up a username/password prompt, or sometimes it would, but then reject the credentials we gave it, we I had already validated were correct.
Anyways, after working with Microsoft Office 365 phone support for over an hour (which is included with the low-cost monthly subscription, by the way), I eventually gave up for the day and decided to try again in the morning.
The next morning I remoted back into my friend’s machine and tried again. Same issues as before, sporadic issues that appeared sometimes but not others, and never able to fully complete the process. At some point I decided to ping Google just to see what the response was (not sure what was going through my mind, but I’m thankful for whatever that was). I noticed that I was receiving an IPv6 response back from Google. WTF is this I thought. Then I decided to check the network settings and came across my issue. My friend was using a Verizon Wireless 4G aircard to connect to the Internet. This card was so kind as to assign him both an IPv4 and an IPv6, standard operating procedure within Windows 7. However, these were both public addresses, not a link-local (ie non-routable) IPv6 address. I decided that Outlook was having some issue connecting to Office 365 because of this. My best bet is that Outlook was trying to connect using IPv6, then failing over to IPv4 (but not consistently), which explained why *sometimes* it would connect to Autodiscover, but not othertimes, and why after it did successfully Autodiscover, we couldn’t make it past there.
My solution was simple: go into the network properties for the adapter and uncheck the IPv6 box. No reboot required. A problem that took several hours was solved in about 10 seconds.