APPLIES TO: Business Central 2021 release wave 1, version 18.4, and later
When you submit an app to AppSource using Partner Center, it starts an automated validation process. This technical validation process ensures the extensions in the app meet the technical requirements for going live. It goes through many of the same checks described in technical validation.
If an app's set up for it, telemetry traces are emitted to and recorded in Application Insights. The data provides details about the success or failure of different phases of the validation. For more information about setting up telemetry for an app, see Sending Extension Telemetry to Azure Application Insights.
The validation process starts when you publish the app. The validation runs against each extension in the app, for each country/region (market) specified for the offer in Partner Center, and for each Business Central version that the submissions targets. For more information versions, see Against which releases of Business Central is your submission validated?.
Extensions are validated using the AL compiler and the AppSourceCop code analyzer. Traces are emitted at different phases during the process. Each submission is assigned a unique identifier (ID). This ID is included in each trace for a submission, allowing you to query all trace related to the submission. The general flow for the validation process is illustrated below:
AppSource submission validation request started
Validation diagnostic reported for information, warnings, or errors that occur on the submission
Version (X), country-region (X) validation started
Extension (X) validation started
Validation diagnostic reported for each error that occurs.
Extension (X) validation completed (successfully or with failures)
Repeat 3-5 for each extension in the submission
Version (X), country-region (X) validation completed (successfully or with failures)
Repeat 2-7 for other country-regions for the Business Central release (X)
Repeat 2-8 for other Business Central releases targeted by the submission
AppSource submission validation request completed (successfully or with failures)
To reduce the risk of failing the AppSource validation process, review the technical validation checklist before you submit an app.
Specifies whether the submission contains a hotfix of an AppSource extension.
Common custom dimensions
The following table explains other custom dimensions that are common to all AppSource submission validation traces.
Dimension
Description or value
validationRequestId
Specifies the unique identifier assigned to the app submission validation process. All traces for the submission validation will include this ID.
telemetrySchemaVersion
Specifies the version of the Business Central telemetry schema.
Diagnostic reported on AppSource submission validation request
Occurs during the submission validation request to report diagnostics related to the submission itself. For example, it could be that a submission has duplicate apps, or it doesn't target any Business Central release. This signal isn't necessarily an error, but can also be warning or information. This signal differs from other diagnostic signals like LC0034, which are reported during the compilation of one app for one country/region release.
General dimensions
Dimension
Description or value
message
Diagnostic reported on AppSource submission validation request: {validationRequestId}
severityLevel
1 for information, 2 for warning, 3 for error
Custom dimensions
Dimension
Description or value
eventId
LC0038
diagnosticCode
Specifies the diagnostic identifier, like AS0001 or AL0001.
diagnosticMessage
Specifies the diagnostic message.
diagnosticSeverity
Info, Warning, or Error. Matches the severityLevel.
containsHotfix
Specifies whether the submission contains a hotfix of an AppSource extension.
To learn more about how to setup alerting on Business Central telemetry, see Alert on Telemetry.
(Version, country-region) validation started
Occurs when the validation has started for a specific version and country/region.
General dimensions
Dimension
Description or value
message
(Version, country-region) validation started: version {version}, country/region {countryRegion}
severityLevel
1
Custom dimensions
Dimension
Description or value
eventId
LC0030
allExtensions
Specifies information about the extensions that are part of the submission and extensions that the submission extensions depend on. Select the arrow to expand the dimension to see the details about each extension.
baselineExtensions
Specifies the previous versions of the extensions in the app and the extensions they're dependent on. These extensions form the baseline for validation if publishing a newer version of an app that's already published.
extensions
Specifies the extensions that are part of the submission and will be validated. Select the arrow to expand the dimension to see the details about each extension.
Occurs when the validation for a specific extension the submission has started.
General dimensions
Dimension
Description or value
message
Extension validation started: version {version}, country/region {countryRegion} for extension {extensionName} version {extensionVersion} by {extensionPublisher} ({extensionId})
severityLevel
1
Custom dimensions
Dimension
Description or value
eventId
LC0032
countryRegion
Specifies the localized version of the app that will be validated.
extensionId
Specifies the ID of the extension in the submission that will be validated.
extensionName
Specifies the name of the extension in the submission that will be validated.
extensionPublisher
Specifies the publisher of the extension in the submission that will be validated.
extensionVersion
Specifies the version of the extension in the submission that will be validated.
severity
Information
version
Specifies the Business Central release that the extension will be validated against, like 19.0 or 18.4.
hotfixValidation
Specifies whether the extension validated is a hotfix.
Occurs when an error occurs during the validation of an extension. The errors are reported by the AL compiler or by the AppSourceCop analyzer.
General dimensions
Dimension
Description or value
message
Validation diagnostic reported: version {version}, country/region {countryRegion} for extension {extensionName} version {extensionVersion} by {extensionPublisher} ({extensionId})
severityLevel
3
Custom dimensions
Dimension
Description or value
eventId
LC0034
countryRegion
Specifies the localized version of the app that was validated.
diagnosticCode
Specifies the diagnostic identifier, like AS0001 or AL0001.
diagnosticMessage
Specifies the diagnostic error message.
diagnosticSeverity
Error
diagnosticSourceLocation
Specifies the location in the source code where the diagnostic was reported. The format used is (Line, Character).
diagnosticSourcePath
Specifies the path to the file where the diagnostic was reported.
extensionId
Specifies the ID of the extension in the submission that will be validated.
extensionName
Specifies the name of the extension in the submission that was validated.
extensionPublisher
Specifies the publisher of the extension in the submission that was validated.
extensionVersion
Specifies the version of the extension in the submission that was validated.
severity
Error
version
Specifies the Business Central release that the extension was validated against, like 19.0 or 18.4.
hotfixValidation
Specifies whether the extension validated is a hotfix.
To learn more about how to setup alerting on Business Central telemetry, see Alert on Telemetry.
Extension validation completed successfully
Occurs when the validation for a specific extension the submission has completed, and no errors occurred.
General dimensions
Dimension
Description or value
message
Extension validation completed successfully: version {version}, country/region {countryRegion} for extension {extensionName} version {extensionVersion} by {extensionPublisher} ({extensionId})
severityLevel
1
Custom dimensions
Dimension
Description or value
eventId
LC0033
countryRegion
Specifies the localized version of the app that was validated.
extensionId
Specifies the ID of the extension in the submission that will be validated.
extensionName
Specifies the name of the extension in the submission that was validated.
extensionPublisher
Specifies the publisher of the extension in the submission that was validated.
extensionVersion
Specifies the version of the extension in the submission that was validated.
severity
Information
version
Specifies the Business Central release that the extension was validated against, like 19.0 or 18.4.
hotfixValidation
Specifies whether the extension validated is a hotfix.
Occurs when the validation for a specific extension the submission has completed, but errors occurred.
General dimensions
Dimension
Description or value
message
Extension validation completed with failures: version {version}, country-region {countryRegion} for extension {extensionName} version {extensionVersion} by {extensionPublisher} ({extensionId})
severityLevel
3
Custom dimensions
Dimension
Description or value
eventId
LC0037
countryRegion
Specifies the localized version of the app that was validated.
extensionId
Specifies the ID of the extension in the submission that will be validated.
extensionName
Specifies the name of the extension in the submission that was validated.
extensionPublisher
Specifies the publisher of the extension in the submission that was validated.
extensionVersion
Specifies the version of the extension in the submission that was validated.
failureReason
One or more error diagnostics were reported. For more information about the diagnostics, see traces with eventId LC0034.
severity
Error
version
Specifies the Business Central release that the extension was validated against, like 19.0 or 18.4.
hotfixValidation
Specifies whether the extension validated is a hotfix.
Occurs when the validation has completed for a specific version and country/region, and no errors occurred.
General dimensions
Dimension
Description or value
message
(Version, country-region) validation completed successfully: version {version}, country/region {countryRegion}
severityLevel
1
Custom dimensions
Dimension
Description or value
eventId
LC0031
allExtensions
Specifies information about the extensions that were part of the submission and extensions that the submission extensions depend on. Select the arrow to expand the dimension to see the details about each extension.
baselineExtensions
Specifies the previous versions of the extensions in the app and the extensions they're dependent on. These extensions form the baseline for validation if publishing a newer version of an app that's already published.
countryRegion
Specifies the localized version of the app that was validated.
extensions
Specifies the extensions that were part of the submission and were validated. Select the arrow to expand the dimension to see the details about each extension.
(Version, country-region) validation completed with failures
Occurs when the validation has completed for a specific version and country/region, and errors occurred.
General dimensions
Dimension
Description or value
message
(Version, country-region) validation completed with failures: version {version}, country-region {countryRegion}
severityLevel
3
Custom dimensions
Dimension
Description or value
eventId
LC0036
allExtensions
Specifies information about the extensions that were part of the submission and extensions that the submission extensions depend on. Select the arrow to expand the dimension to see the details about each extension.
baselineExtensions
Specifies the previous versions of the extensions in the app and the extensions they're dependent on. These extensions form the baseline for validation if publishing a newer version of an app that's already published.
countryRegion
Specifies the localized version of the app that was validated.
extensions
Specifies the extensions that were part of the submission and were validated. Select the arrow to expand the dimension to see the details about each extension.
failureReason
One or more extension validation tasks have failed.
Use a prefix or suffix for names in your extension. This rule applies to all objects, including tables, pages, and codeunits. This topic explains the benefits and guidelines for using a prefix or suffix."
The per-tenant extension (or one of its dependencies) cannot be deployed as it has missing dependencies or the dependencies are conflicting with currently installed apps. Check if these dependencies are installed.