An error occurs in the Microsoft Dynamics CRM app for users in child business units: "Sorry, something went wrong while initializing the app"

Applies to: CRM Online via Office 365 E PlansDynamics CRM 2013Microsoft Dynamics CRM Online Professional Edition More

Symptoms


After you install the Microsoft Dynamics CRM tablet app, you are initially able to connect the app to your Microsoft Dynamics CRM organization. After a period of time or after reopening the app, you see the following error:

"Sorry, something went wrong while initializing the app. Please try again, or restart the app"


When you tap the Back button or try to reopen the app, you continue to see the same error. You may see the sign in page before you encounter the error again. The issue only occurs for users in child business units with security roles inherited from a parent business unit. 

Cause


The error occurs because the inherited security roles in child business units are missing a modified date value. If you open the security role at the child business unit level and then click Properties from the File menu, you see that the Last Modified On date is not populated.

Microsoft is aware of this issue and plans to provide a fix in a future update. The issue has already been resolved in Microsoft Dynamics CRM Online and a fix is planned for Microsoft Dynamics CRM 2013 on-premises. In the meantime the workaround from the Resolution section can be applied. 

Resolution


To work around the issue, follow the steps below which will update the inherited security role to include a Modified On date:

1. Log into the Microsoft Dynamics CRM web application with a user that has the System Administrator security role.

2. From the navigation bar click Microsoft Dynamics CRM and then click Settings.

3. From the navigation bar click Settings and then click Administration.

4. Open the security role (at the parent business unit level) assigned to the user who encounters this issue. 

5. Without making any changes, click the Save button.

6. Click the File menu and then click Properties.

7. Verify the Last Modified On date has been updated. 

8. Close the window for the security role. 

Note: Within the Security Roles sub-area you can click the Business Unit drop-down list to display roles for each business unit. If you check the role at the child business unit level, you should see that the Last Modified On date is now populated. 

9. Repeat steps 4-8 for any additional security roles that are encountering this issue.

10. Verify that the issue has been resolved. 

Note: Because the default System Administrator role cannot be modified, there is not currently a workaround for users in child business units that have the System Administrator role. A copied version of the System Administrator role (created using the Copy Role feature) can be modified. 

More Information


If you capture tracing, the following error is logged:

Error Message:System.NullReferenceException: Object reference not set to an instance of an object.

   at Microsoft.Crm.Application.WebServices.ApplicationMetadataService.<>c__DisplayClass30.<UserRolesChanged>b__2d(Entity role)

   at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)

   at Microsoft.Crm.Application.WebServices.ApplicationMetadataService.UserRolesChanged(Guid[] clientUserRoles, DateTime syncTime, ExecutionContext context)

  at Microsoft.Crm.Application.WebServices.ApplicationMetadataService.RetrieveUserContext(UserContextRetrieveRequest userContextRetrieveRequest)



For information on how to enable tracing in CRM for Tablets, refer to the following article:

Enable tracing in CRM for tablets

http://www.microsoft.com/en-US/dynamics/crm-customer-center/enable-tracing-in-crm-for-tablets.aspx