Resolving Errors In Azure AI Search Indexer Against Blob Storage Account

When creating an indexer in Azure AI Search to read files such as JSON and PDFs, I encountered the following error:

Operation:
Web Api response status: ‘Unauthorized’, Web Api response details: ‘{“error”:{“code”:”PermissionDenied”,”message”: “Principal does not have access to API/Operation.”}}’

Message:
Could not execute skill because the Web Api request failed.

Details:
Web Api response status: ‘Unauthorized’, Web Api response details: ‘{“error”:{“code”:”PermissionDenied”,”message”: “Principal does not have access to API/Operation.”}}’

Clicking into the indexer execution history, there are repeated failed attempts.

Drilling into the Failed error

The role assignment I have configured is the system managed identity of the AI Search resource and assigning the scope to the Storage Account.

And so I assigned the following Roles to the managed identity

For the the background read the MS Learn documentation https://learn.microsoft.com/en-us/azure/search/search-howto-managed-identities-storage

When assigning these roles, you may need to wait some time and refresh for permissions to propagate.

Then running the indexer again, I encounter a new error.

statusCode: '400'
name: 'Enrichment.AzureOpenAIEmbeddingSkill.Embeddings'
errorMessage: 'Could not execute skill because the Web Api request failed.'
details: 'Web Api response status: 'NotFound'_ Web Api response details: '{"error":{"code":"DeploymentNotFound"

This error tooke me sometime to figure out, but I eventually realized that since this AzureOpenAIEmbeddingSkill is calling out to an embedding model, the DeploymentNotFound is referring to a model deployment in Azure Open AI service.

In the Azure AI Foundry, I look at my deployed models.

And so I had to correct my typo in my .env file for the variable to match exactly the model name found above.

AZURE_OPENAI_EMBEDDING_DEPLOYMENT_ID=text-embedding-ada-002

Upon recreating the indexer with this updated model name value, I am now able to run the indexer successfully. The sample code I am running can be found at https://github.com/Azure/azure-search-vector-samples/tree/main/demo-python/code/data-chunking

Conclusion

I hope this can help those who have encountered the same or similar issues and my troubleshooting walk through gives some ideas.

References

Leave a Reply