I am writing this post for all those poor souls trying to upgrade Dynamics CRM to 2016 that might encounter this issue.
We recently decided to finally upgrade our “ancient” internal CRM based on Microsoft CRM 2011 to Microsoft Dynamics CRM 2016. (To be honest, we have chosen to upgrade to CRM 2015, but while we were preparing this project, Microsoft released 2016, so we decided to board that train)
Upgrading from 2011 to 2016 is back breaking because there is no direct upgrade path and your database first needs to be upgraded to 2013, then to 2015 and finally to 2016. We did a lot of testing of this upgrade just to make sure all our data remains intact and also that all our customizations are still going to work. Then just two days before our planned upgrade that I realized something strange. The entire CRM ribbon was missing in CRM 2016.
After careful digging in CRM trace logs I found the following error message:
System.Web.HttpUnhandledException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #FBE03C93: System.Web.HttpUnhandledException (0x80004005): Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: Expected 'Integer' data type for 'mver' parameter in 'Request.QueryString'. The raw request was 'GET /Org/_controls/ribbon/RibbonLayout.js.aspx?cb=true&hierarchy=00000000-0000-0000-0000-000000000000&id=Mscrm.BasicHomeTab&ie=0&ise=1&lcid=1033&mver=3218790419&oc=0&page=%2fDASHBOARDS%2fDASHBOARD.ASPX&rver=-698661720&ver=-1133299777'
This problem occurred only in our CRM production organization, and it was not present in our development and test environments. CRM 2016 is fairly new product, and I could not find anything useful online. I did some investigating to find out more on how the ribbon is being generated and found this very useful flag called DisableParameterFilter. As we didn’t, as far as I know, use any additional view filters, this didn’t make much sense to me. I still tried to disable it, and voila, everything started working again.
I hope someone upgrading to CRM 2016 will find this useful.