Telemetry events for mobile app synchronization and actions (preview)
[This article is prerelease documentation and is subject to change.]
Power Apps mobile application data related to offline synchronization events is available for model-driven and canvas apps. This data can be used to evaluate the health and performance of offline sync events for your organization.
This data goes into the Power Apps (Preview) > Mobile app synchronization and actions table in Application Insights. An entry is logged when a user accesses a Power Apps mobile app, which is configured for offline mode. More data, related to failure events in model-driven apps is available through the Power Apps (Preview) > UCI.
Important
- This is a preview feature.
- Preview features aren’t meant for production use and may have restricted functionality. These features are subject to supplemental terms of use, and are available before an official release so that customers can get early access and provide feedback.
Mobile app synchronization and action event definitions
- id: Event ID.
- target: Name of the scenario tracked by the event.
- type: Source table of the event.
- name: Name of the scenario tracked by the event.
- success: Result of the scenario tracked by the event (values SUCCESS or FAILURE).
- duration: Scenario duration in milliseconds. Duration may include long periods of time when the app is inactive.
- FailureType: Defines type of sync failure.
- ErrorCode: Error Code generated upon sync failure. See Error code mapping table.
- operation_Id: Unique identifier for the session.
- operation_ParentId: Unique identifier for the scenario tracked by the event.
- user_Id: Microsoft Entra user ID.
- user_AuthenticatedId: Microsoft Entra user ID.
- application_Version: Version of the app.
- customDimensions: Contains the following attributes:
- eventContext: Contains the following properties:
- CurrentSyncId: Identifier for the current sync session, which may span multiple app sessions.
- DataSyncStatus: (No value provided.)
- entityName: Name of the table in data download events.
- hasNetworkTimeouts: Flag indicating whether any HTTP calls failed with network timeouts in the current sync.
- DataSyncStatus: JSON object containing detailed status of a sync, including details about the data downloaded to the device.
- ProfileId: ID of the offline profile configured for the app and user.
- recordCount: Number of records downloaded.
- responseSize: Response size of an HTTP request.
- appInfo_Version: Version of the native app, as seen in the app store.
- activeDuration: Scenario duration in milliseconds including only time while the app is active.
- offlineSyncFcbs: Features activated or deactivated for the offline sync.
- deviceInfo_Id: Unique identifier of the device.
- deviceInfo_model: Device model (such as iPhone 13).
- deviceInfo_make: Device make (such as Apple).
- deviceInfo_OsName: Device operating system (such as Android).
- deviceInfo_OsVersion: Operating system version (such as Android 13).
- "eventName": Step of the scenario tracked by the event (ScenarioEnd, ScenarioStart, ScenarioStory, Trace, AggregateTrace, AggregatedTrace, trace, ScenarioDuplicateEnd).
- logLevel: The severity or reporting level of the event. Valid values are info, error, warning, error, verbose.
- scenarioGuid: Unique identifier for the scenario tracked by the event.
- dataSyncMode: What type of offline sync the user has experienced.
- DELTA_SYNC
- GRID_SYNC
- FIRST_SYNC
- FORCED_SYNC
- SINGLE_RECORD_SYNC
- appFlavor: Native app installed on the devices. Valid values are FieldService and PowerApps.
- loc_country: Telemetry device origin.
- eventContext: Contains the following properties:
Unified Client Interface failure events
- timestamp [UTC]: When the event happened.
- problemId: "uci_trace" or "uciMonitorFailure" (Where the data came from.)
- type: "uci_trace" or "uciMonitorFailure" (Where the data came from.)
- outType: "uci_trace" or "uciMonitorFailure" (Where the data came from.)
- outerMessage: Error message.
- itemType: "exception"
- CustomDimensions:
- eventContext: More details related to the error.
- ServerConnectivityState: Is user in offline mode? (Offline/Online)
- NetworkConnectivityState: Does user have internet connection? Note that a user can be in offline mode, but have an internet connection.
- IsOfflineByDefaultApp: When false, it means the Work in offline mode feature is on. When true, it means offline-first is turned on.
- callStack: The programming code where the error occurred.
- hostSubType: "PowerApps-Player-iOS-fieldservice"
- hostType: "MobileApplication"
- Operation_ID: A string concatenation of sessionID followed by a '_' and External correlation ID, for example, e11e8465-bc8f-4319-b64a-9c1e42453148_0da90a33-ad68-4a4e-bd45-5728d5da719a.
- Operation_ParentID: Activity ID related to error.
- SessionId: Session ID of error.
- UserId: Dynamics 365 user ID.
- User_authenticatedID: Dynamics 365 user ID.
- Application_version: App version, for example, 9.2.24045.00212.
- Client_Type: Operating system version, such as iOS or Android.
Example scenarios
Offline sync failures by error code
This query allows you see what types of failures frontline workers are encountering when a sync fails. Some failures are excepted, such as if the mobile application is closed while syncing, or if the network disconnects while syncing and prevents the sync from completing. Definition of failure codes is shown in the Error code mapping table.
dependencies
| extend cd = parse_json(customDimensions)
| where cd.appFlavor == "FieldService"
| where type == "modelAppEvent"
| where isnotempty(cd.FailureType)
| extend FailureType = tostring(cd.FailureType),
ErrorCode = tostring(cd.ErrorCode)
| summarize Count = count() by FailureType, ErrorCode
| project FailureType, ErrorCode, Count
| render piechart with (title="Sync Failures Categorized by FailureType and ErrorCode")
Tables synced by record count
This query allows you to evaluate which tables are contributing most records to a sync. Using this data you can try to further optimize your offline profile to reduce records or data within each table.
dependencies
| extend cd = parse_json(customDimensions)
| extend eventContext = parse_json(tostring(cd.eventContext))
//| where eventContext.IsFirstSync == "true" // Filter sync type
| extend dataSyncStatus = parse_json(tostring(eventContext.DataSyncStatus))
| mv-expand entities = dataSyncStatus.entities to typeof(dynamic) // Expand the entities list into rows
| project TableName = entities.entityName, SyncedRecordCount = entities.totalSyncedRecordCount
| summarize TotalSyncedRecords = sum(toint(SyncedRecordCount)) by tostring(TableName)
| order by TotalSyncedRecords desc
| render piechart // Visualize the results as a pie chart
Users by device type and app version
This query gives more information on users in your organization who are accessing the mobile application on their device model.
dependencies
| extend cd = parse_json(customDimensions)
| where isnotempty(user_Id) // Filter out rows where user_Id is empty
| where cd.appFlavor == "FieldService"
| where type == "modelAppEvent"
| extend ShortAppVersion = extract(@"\b\d+\.(\d+\.\d+)", 1, application_Version)
| summarize Users = dcount(user_Id),
iOS = dcountif(user_Id, cd.deviceInfo_OsName == "iOS" or cd.deviceInfo_OsName == "iPadOS"),
Android = dcountif(user_Id, cd.deviceInfo_OsName == "Android"),
Windows = dcountif(user_Id, cd.deviceInfo_OsName has "Windows")
by ShortAppVersion
Error code mapping
Error code | Failure type | Definition |
---|---|---|
-2146864604 | CONFIG_ERROR | App or user configuration error. See Web service error codes. |
-2146864606 | CONFIG_ERROR | App or user configuration error. See Web service error codes. |
-2146864607 | CONFIG_ERROR | App or user configuration error. See Web service error codes. |
-2146864608 | CONFIG_ERROR | App or user configuration error. See Web service error codes. |
-2146869250 | CONFIG_ERROR | App or user configuration error. See Web service error codes. |
-2147015328 | ACCESS_ERROR | App or user configuration error. See Web service error codes. |
-2147088248 | CONFIG_ERROR | App or user configuration error. See Web service error codes. |
-2147155198 | ERROR | For error codes beginning in –214, see Web service error codes. |
-2147155198 | ACCESS_ERROR | App or user configuration error. See Web service error codes. |
-2147167669 | ACCESS_ERROR | App or user configuration error. See Web service error codes. |
-2147180269 | ACCESS_ERROR | App or user configuration error. See Web service error codes. |
-2147180284 | ACCESS_ERROR | App or user configuration error. See Web service error codes. |
-2147187375 | ERROR | App or user configuration error. See Web service error codes. |
-2147187388 | ERROR | App or user configuration error. See Web service error codes. |
-2147187389 | ERROR | App or user configuration error. See Web service error codes. |
-2147204270 | ERROR | App or user configuration error. See Web service error codes. |
-2147204339 | ERROR | App or user configuration error. See Web service error codes. |
-2147204784 | ERROR | App or user configuration error. See Web service error codes. |
-2147209463 | ACCESS_ERROR | App or user configuration error. See Web service error codes. |
-2147217124 | ERROR | For error codes beginning in –214, see Web service error codes. |
-2147220884 | ERROR | For error codes beginning in –214, see Web service error codes. |
-2147220955 | ACCESS_ERROR | App or user configuration error. See Web service error codes. |
-2147220956 | EXTERNAL_ERROR | For error codes beginning in –214, see Web service error codes. |
-2147220960 | ACCESS_ERROR | App or user configuration error. See Web service error codes. |
-2147220970 | ERROR | For error codes beginning in –214, see Web service error codes. |
-2147220989 | ERROR | For error codes beginning in –214, see Web service error codes. |
-50 | ERROR | Internal error. |
0 | ERROR | Unknown error. |
2000 | ERROR | Unmapped error. |
2002 | ERROR | Dataverse SQL timeout. |
2003 | DATABASE_ERROR | Database error. |
2004 | NETWORK_ERROR | Network error. |
2005 | SERVER_ERROR | Server error. |
2006 | AUTH_ERROR | Authentication error. |
2007 | DEVICE_ERROR | Disk is full error. |
2008 | ERROR | Internal error. |
2009 | AUTH_ERROR | Authentication error. |
2011 | CONFIG_ERROR | App module privilege error. |
2016 | CONFIG_ERROR | Offline configuration error. |
2017 | CONFIG_ERROR | Offline profile configuration error. |
3000 | EXPECTED_ERROR | Sync internal event. |
3003 | CONFIG_ERROR | Offline profile configuration error. |