Friday, October 17, 2014

Fixing Blank Calendar with Chrome 38 and Outlook Web App (OWA) on Exchange 2013

So there's an issue with Chrome 38 and higher and Exchange 2013 Outlook Web App (OWA): the calendar will fail to load any data effectively showing up blank for users. You'll also see the error in the client headers as "ClientError;exMsg=Uncaught SyntaxError: Unexpected token );file=https://mail.corp.com/owa/15.0.995.29/owa2/scripts/boot.0.mouse.js:11". This is not the  modalDialog issue that's causing issues with OWA 2010, it's an issue with Chrome's V8 javascript engine their array object definition.

The fix is pretty simple to implement. On one of your mailbox servers copy the contents of: C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\Owa\prem\15.0.995.29\scripts\ to a directory on your workstation (may want to make a backup copy on the server just in case). There's no need to copy any subdirectories, only the root js files. Also note that you may have a different version number in there: 15.0.995.29 is Update 6.

Using Notepad++, find and replace in all files in the directory on your local machine: replace '"values"in n' with 'n.hasOwnProperty("values")' (without the surounding 's). On 15.0.995.29 this was 42 replacements:


Copy the updated files back to all of your Exchange Mailbox servers (if you segregate your CAS and MB hosts, you only need to update on the MB hosts as they do the actual site rendering). Also after you update the files there's no need to cycle the AppPool, clients just need to logout and log back into OWA (if you have a NetScaler or similar load balancer in between doing any form of caching you may need to refresh that).

You can actually see Microsoft's implemented the same fix for this in the Office 365 release chain; they added the fix between 16.0.411.0 and 16.0.411.1:
https://r1.res.office365.com/owa/prem/16.0.411.0/scripts/boot.0.mouse.js
https://r1.res.office365.com/owa/prem/16.0.411.1/scripts/boot.0.mouse.js


Credit to finding the root issue goes to adamk@chromium.org, the Chrome issue is here:
https://code.google.com/p/chromium/issues/detail?id=409858

Update for Chrome looks like it's coming down the pipeline soon, should also be in the Exchange 2013 Update 7 in late November.

9 comments:

Anonymous said...

Great, thanks for this writeup! I've been harassing our IT for a few days to find a real solution since I wasn't satisfied with being told to "Use IE8" ;)

Anonymous said...

On my Exchange 2013 box there is no 'prem' folder after OWA, could the files be elseware? Tried going *\owa\15.0.712.0\scripts\premium\
but those don't seem to be the right files...

Charles Wastell said...

Should be in:
C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\Owa\15.0.712.0\Owa2\scripts

I don't have an older lab box to run this on so I can't verify that all of the scripts exist in that subdirectory, but offhand I think they should.

You should also look at patching your Exchange Server. With the new servicing model CUs are only supported for three months after the release of the next CU; your four CUs behind and have been out of support since Feb 2014. There are some critical security issues addressed in those CU as well.

Anonymous said...

Thanks a lot, the fix helped us out :)

Anonymous said...

Thanks that worked well and was explained well.

Anonymous said...

Thank You! Solved that worked!

Anonymous said...

I'm running Chrome 38 and OWA 15.0.995.26 and had the blank calendar problem. I just updated Chrome to 38.0.2125.111 m and this problem is solved. No need for server-side access.

Charles Wastell said...

Google is anything if not efficient in their release system, looksl ike it worked it's way to mainstream.

Anonymous said...

Thank you very much, it solved the problem