Skip to content

Commit b5c8792

Browse files
Merge pull request #206894 from Man-MSFT/mafong/error-codes
Create how-to-troubleshoot-data.md
2 parents e245ce9 + 62a6f88 commit b5c8792

File tree

2 files changed

+101
-0
lines changed

2 files changed

+101
-0
lines changed
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
---
2+
title: Troubleshoot data access
3+
titleSuffix: Azure Machine Learning
4+
description: Learn how to troubleshoot and resolve data access issues.
5+
author: Man-MSFT
6+
ms.author: mafong
7+
ms.reviewer: ssalgado
8+
services: machine-learning
9+
ms.service: machine-learning
10+
ms.subservice: mldata
11+
ms.date: 08/03/2022
12+
ms.topic: troubleshooting
13+
ms.custom: devx-track-python, mldata, references_regions, sdkv2
14+
---
15+
16+
# Troubleshoot data access errors
17+
18+
[!INCLUDE [sdk v2](../../includes/machine-learning-sdk-v2.md)]
19+
20+
In this guide, learn how to identify and resolve known issues with data access with the [Azure Machine Learning SDK](/python/api/overview/azure/ml/intro).
21+
22+
## Error Codes
23+
24+
Data access error codes are hierarchical. Error codes are delimited by the full stop character `.` and are more specific the more segments there are.
25+
26+
## ScriptExecution.DatabaseConnection
27+
28+
### ScriptExecution.DatabaseConnection.NotFound
29+
30+
The database or server defined in the datastore couldn't be found or no longer exists. Check if the database still exists in Azure portal or linked to from the Azure Machine Learning studio datastore details page. If it doesn't exist, recreating it with the same name will enable the existing datastore to be used. If a new server name or database is used, the datastore will have to be deleted, and recreated to use the new name.
31+
32+
### ScriptExecution.DatabaseConnection.Authentication
33+
34+
The authentication failed while trying to connect to the database. The authentication method is stored inside the datastore and supports SQL authentication, service principal, or no stored credential (identity based access). Enabling workspace MSI makes the authentication use the workspace MSI when previewing data in Azure Machine Learning studio. A SQL server user needs to be created for the service principal and workspace MSI (if applicable) and granted classic database permissions. More info can be found [here](/azure/azure-sql/database/authentication-aad-service-principal-tutorial#create-the-service-principal-user-in-azure-sql-database).
35+
36+
Contact your data admin to verify or add the correct permissions to the service principal or user identity.
37+
38+
Errors also include:
39+
40+
- ScriptExecution.DatabaseConnection.Authentication.AzureIdentityAccessTokenResolution.InvalidResource
41+
- The server under the subscription and resource group couldn't be found. Check that the subscription ID and resource group defined in the datastore matches that of the server and update the values if needed.
42+
> [!NOTE]
43+
> Use the subscription ID and resource group of the server and not of the workspace. If the datastore is cross subscription or cross resource group server, these will be different.
44+
- ScriptExecution.DatabaseConnection.Authentication.AzureIdentityAccessTokenResolution.FirewallSettingsResolutionFailure
45+
- The identity doesn't have permission to read firewall settings of the target server. Contact your data admin to the Reader role to the workspace MSI.
46+
47+
## ScriptExecution.DatabaseQuery
48+
49+
### ScriptExecution.DatabaseQuery.TimeoutExpired
50+
51+
The executed SQL query took too long and timed out. The timeout can be specified at time of data asset creation. If a new timeout is needed, a new asset must be created, or a new version of the current asset must be created. In Azure Machine Learning studio SQL preview, there will have a fixed query timeout, but the defined value will always be honored for jobs.
52+
53+
## ScriptExecution.StreamAccess
54+
55+
### ScriptExecution.StreamAccess.Authentication
56+
57+
The authentication failed while trying to connect to the storage account. The authentication method is stored inside the datastore and depending on the datastore type, can support account key, SAS token, service principal or no stored credential (identity based access). Enabling workspace MSI makes the authentication use the workspace MSI when previewing data in Azure Machine Learning studio.
58+
59+
Contact your data admin to verify or add the correct permissions to the service principal or user identity.
60+
61+
> [!IMPORTANT]
62+
> If identity based access is used, the required RBAC role is Storage Blob Data Reader. If workspace MSI is used for Azure Machine Learning studio preview, the required RBAC roles are Storage Blob Data Reader and Reader.
63+
64+
Errors also include:
65+
66+
- ScriptExecution.StreamAccess.Authentication.AzureIdentityAccessTokenResolution.FirewallSettingsResolutionFailure
67+
- The identity doesn't have permission to read firewall settings of the target storage account. Contact your data admin to the Reader role to the workspace MSI.
68+
- ScriptExecution.StreamAccess.Authentication.AzureIdentityAccessTokenResolution.PrivateEndpointResolutionFailure
69+
- The target storage account is using a virtual network but the logged in session isn't connecting to the workspace via a private endpoint. Add a private endpoint to the workspace and ensure that the virtual network or subnet of the private endpoint is allowed by the storage virtual network settings. Add the logged in session's public IP to the storage firewall allowlist.
70+
- ScriptExecution.StreamAccess.Authentication.AzureIdentityAccessTokenResolution.NetworkIsolationViolated
71+
- The target storage account's firewall settings don't permit this data access. Check that your logged in session is within compatible network settings with the storage account. If Workspace MSI is used, check that it has Reader access to the storage account and to the private endpoints associated with the storage account.
72+
- ScriptExecution.StreamAccess.Authentication.AzureIdentityAccessTokenResolution.InvalidResource
73+
- The storage account under the subscription and resource group couldn't be found. Check that the subscription ID and resource group defined in the datastore matches that of the storage account and update the values if needed.
74+
> [!NOTE]
75+
> Use the subscription ID and resource group of the server and not of the workspace. If the datastore is cross subscription or cross resource group server, these will be different.
76+
77+
### ScriptExecution.StreamAccess.NotFound
78+
79+
The specified file or folder path doesn't exist. Check that the provided path exists in Azure portal or if using a datastore, that the right datastore is used (including the datastore's account and container). If the storage account is an HNS enabled Blob storage, otherwise known as ADLS Gen2, or an `abfs[s]` URI, that storage ACLs may restrict particular folders or paths. This error will appear as a "NotFound" error instead of an "Authentication" error.
80+
81+
### ScriptExecution.StreamAccess.Validation
82+
83+
There were validation errors in the request for data access.
84+
85+
Errors also include:
86+
87+
- ScriptExecution.StreamAccess.Validation.TextFile-InvalidEncoding
88+
- The defined encoding for delimited file parsing isn't applicable for the underlying data. Update the encoding of the MLTable to match the encoding of the file(s).
89+
- ScriptExecution.StreamAccess.Validation.StorageRequest-InvalidUri
90+
- The requested URI isn't well formatted. We support `abfs[s]`, `wasb[s]`, `https`, and `azureml` URIs.
91+
92+
## Next steps
93+
94+
- See more information on [data concepts in Azure Machine Learning](concept-data.md)
95+
96+
- [Identity-based data access to storage services on Azure](how-to-identity-based-data-access.md).
97+
98+
- [Read and write data in a job](how-to-read-write-data-v2.md)

articles/machine-learning/toc.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -653,6 +653,9 @@
653653
- name: Troubleshoot descriptor error
654654
displayName: descriptors cannot not be created directly
655655
href: how-to-troubleshoot-protobuf-descriptor-error.md
656+
- name: How to troubleshoot data access
657+
displayName: troubleshoot, data, debug, image
658+
href: how-to-troubleshoot-data-access.md
656659
- name: Reference
657660
items:
658661
- name: Python SDK v1

0 commit comments

Comments
 (0)