Analyzing error method telemetry
APPLIES TO: Business Central 2022 release wave 1 and later
Note
Azure Active Directory is now Microsoft Entra ID. Learn more
When a user gets an error dialog while working in Business Central, a telemetry signal is emitted, which can be logged in an Azure Application Insights resource.
This telemetry data let's you identify and analyze calls to the Error
method from AL code. You can also set up alerts in Azure Application Insights to get notified if many users experience errors.
Error dialog displayed
Occurs when the Error
method is called and displays a dialog to the user.
General dimensions
Dimension | Description or value |
---|---|
message | Error dialog displayed: {failureReason} |
severityLevel | 3 |
user_Id | The user telemetry ID for the user. From the user card, you can use user_Id to identify the user who triggered this telemetry event. Learn more in Assign a telemetry ID to users. |
Custom dimensions
Dimension | Description or value |
---|---|
eventId | RT0030 |
alErrorMessage | The error string defined in the error method and displayed in the client. The actual error string from AL code is shown in this dimension only if the string is a Label or TextConst data type. For all other data types, the string Use ERROR with a text constant to improve telemetry details is shown instead of the actual string.Some messages can contain customer data. As a precaution, Business Central only emits information that's classified as SystemMetadata. Information that belongs to other data classifications, like customer data, isn't shown. Instead, the following message is shown: "Message not shown because the NavBaseException(string, Exception, bool) constructor was used." |
alEnglishLanguageDiagnosticsMessage | The error message in English (no matter which language the user had specified in the client). This dimension was introduced in Business Central 2023 release wave 1, version 22.0. |
alObjectId | Specifies the ID of the AL object. |
alObjectType | Specifies the type of the AL object. |
alStackTrace | The stack trace in AL. |
clientType | Specifies the type of client that opened the session, such as Background or Web. For a list of the client types, see ClientType Option Type. |
companyName | The current company name. |
failureReason | Dialog means the error was the result of an error method call in AL. Errors thrown by the platform have other reasons, like MetadataNotFound. |
The following table explains other custom dimensions that are common to all error telemetry.
Dimension | Description or value |
---|---|
aadTenantId | The Microsoft Entra tenant ID that's used for Microsoft Entra authentication. For on-premises, if you aren't using Microsoft Entra authentication, this value is common. |
component | Dynamics 365 Business Central Server |
componentVersion | The version number of the component that emits telemetry (see the component dimension) |
environmentName | The name of the tenant environment. See Managing Environments. This dimension isn't included for Business Central on-premises environments. |
environmentType | The environment type for the tenant, such as Production, Sandbox, Trial. See Environment Types |
telemetrySchemaVersion | The version of the Business Central telemetry schema |
Sample KQL code (error dialogs)
This KQL code can help you get started analyzing which error dialogs users see:
traces
| where timestamp > ago(60d) // adjust as needed
| where customDimensions.eventId == 'RT0030'
| project timestamp
// in which environment/company did it happen
, aadTenantId = customDimensions.aadTenantId
, environmentName = customDimensions.environmentName
, environmentType = customDimensions.environmentType
, companyName = customDimensions.companyName
// in which extension/app
, extensionId = customDimensions.extensionId
, extensionName = customDimensions.extensionName
, extensionVersion = customDimensions.extensionVersion
, extensionPublisher = customDimensions.extensionPublisher
// in which object
, alObjectId = customDimensions.alObjectId
, alObjectName = customDimensions.alObjectName
, alObjectType = customDimensions.alObjectType
// which user got the error
, usertelemetryId = case(
toint( substring(customDimensions.componentVersion,0,2)) >= 20, user_Id // user telemetry id was introduced in the platform in version 20.0
, 'N/A'
)
// error information
, clientType = customDimensions.clientType
, errorMessageInUsersLanguage = customDimensions.alErrorMessage
, errorMessageInEnglish = customDimensions.alEnglishLanguageDiagnosticsMessage // This dimension was introduced in Business Central 2023 release wave 1, version 21.4.
, alStackTrace = customDimensions.alStackTrace
, failureReason = customDimensions.failureReason
Understanding the error dialog
To effectively help users mitigate any issues they might encounter, you should learn more about the different parts of the error dialog, including how to interpret the AL stack trace. For more information, see Understanding the error dialog.
Related information
Dialog.Error Method
Dialog.Error Method
Understanding the error dialog
Monitoring and Analyzing Telemetry
Enable Sending Telemetry to Application Insights