A fully managed end-to-end service for digitally signing code, documents, and applications. (formerly Trusted Signing)
Use SignTool with /debug first. The documented way to surface more detail from SignTool is:
SignTool sign /debug [options]
For MSIX-related internal signing errors, SignTool diagnostics can also be checked in Event Viewer:
- Run
Eventvwr.msc - Open Event Viewer (Local) -> Applications and Services Logs -> Microsoft -> Windows -> AppxPackagingOM -> Microsoft-Windows-AppxPackaging/Operational
- Review the most recent error event
For Artifact Signing specifically, the supported mitigations for opaque SignTool/DLIB failures are:
- Verify the endpoint exactly matches the account region. For Switzerland North, the documented endpoint is
https://swn.codesigning.azure.net. A region/endpoint mismatch commonly causes 403 Forbidden and internalSignerSign()failure. - Use the latest SignTool. The FAQ explicitly calls out
SignerSign() failed.(-2147024846/0x80070032)as a case where the latest SignTool should be used. - Check the metadata.json values exactly:
-
Endpoint -
CodeSigningAccountName -
CertificateProfileName
-
- Check .NET runtime presence. Silent SignTool failures are documented when the relevant .NET runtime version is missing.
- Check DLIB path, DLIB version, DLIB name, and SignTool version. The FAQ lists these as causes when SignTool is not using Artifact Signing certificates correctly.
- If running outside Azure, exclude Managed Identity in the manifest/JSON configuration.
Azure.Identity.CredentialUnavailableExceptionis documented for environments outside Azure, and the guidance is to addexclude ManagedIdentity. - If authentication is affected by cached credentials or certificate caching, exclude unneeded DefaultAzureCredential sources by adding
"ExcludeCredentials": ["<include list of credentials to be excluded>"]to the JSON file.
Based on the documented guidance, there is no published compatibility matrix here that identifies a known broken combination of current SignTool and Azure.CodeSigning.Dlib.dll versions, and there is no documented method here to extract a deeper Artifact Signing service error from the DLIB path beyond SignTool /debug output and the standard troubleshooting checks above.
The strongest documented checks for the described scenario are:
- confirm the Switzerland North endpoint is exactly
https://swn.codesigning.azure.net - confirm
metadata.jsonaccount/profile names are correct - run SignTool with
/debug - ensure the relevant .NET runtime is installed
- ensure the latest SignTool is being used
- if the pipeline host is outside Azure, exclude Managed Identity and any other unnecessary credential types
If the REST signing request succeeds with HTTP 202 while every SignTool/DLIB path still returns only Access is denied, the available documentation here does not expose a more detailed client-side error retrieval mechanism than /debug and the listed configuration checks.