Troubleshoot errors using Azure Resource Graph

You may run into errors when querying Azure resources with Azure Resource Graph. This article describes various errors that may occur and how to resolve them.

Finding error details

Most errors are the result of an issue while running a query with Azure Resource Graph. When a query fails, the SDK provides details about the failed query. This information indicates the issue so that it can be fixed and a later query succeeds.

General errors

Scenario: Throttled requests

Issue

Customers making large or frequent resource queries have requests throttled.

Cause

Azure Resource Graph allocates a quota number for each user based on a time window. For example, a user can send at most 15 queries within every 5-second window without being throttled. The quota value is determined by many factors and is subject to change. For more information, see Throttling in Azure Resource Graph.

Resolution

There are several methods of dealing with throttled requests:

Scenario: Too many subscriptions

Issue

Customers with access to more than 1000 subscriptions, including cross-tenant subscriptions with Azure Lighthouse, can't fetch data across all subscriptions in a single call to Azure Resource Graph.

Cause

Azure CLI and PowerShell forward only the first 1000 subscriptions to Azure Resource Graph. The REST API for Azure Resource Graph accepts a maximum number of subscriptions to perform the query on.

Resolution

Batch requests for the query with a subset of subscriptions to stay under the 1000 subscription limit. The solution is using the Subscription parameter in PowerShell.

# Replace this query with your own
$query = 'Resources | project type'

# Fetch the full array of subscription IDs
$subscriptions = Get-AzSubscription
$subscriptionIds = $subscriptions.Id

# Create a counter, set the batch size, and prepare a variable for the results
$counter = [PSCustomObject] @{ Value = 0 }
$batchSize = 1000
$response = @()

# Group the subscriptions into batches
$subscriptionsBatch = $subscriptionIds | Group -Property { [math]::Floor($counter.Value++ / $batchSize) }

# Run the query for each batch
foreach ($batch in $subscriptionsBatch){ $response += Search-AzGraph -Query $query -Subscription $batch.Group }

# View the completed results of the query on all subscriptions
$response

Scenario: Unsupported Content-Type REST header

Issue

Customers querying the Azure Resource Graph REST API get a 500 (Internal Server Error) response returned.

Cause

The Azure Resource Graph REST API only supports a Content-Type of application/json. Some REST tools or agents default to text/plain, which is unsupported by the REST API.

Resolution

Validate that the tool or agent you're using to query Azure Resource Graph has the REST API header Content-Type configured for application/json.

Scenario: No read permission to all subscriptions in list

Issue

Customers that explicitly pass a list of subscriptions with an Azure Resource Graph query get a 403 (Forbidden) response.

Cause

If the customer doesn't have read permission to all the provided subscriptions, the request is denied because of lack of appropriate security rights.

Resolution

Include at least one subscription in the subscription list that the customer running the query has at least read access to. For more information, see Permissions in Azure Resource Graph.

Next steps

If you didn't see your problem or are unable to solve your issue, visit one of the following channels for more support:

  • Get answers from Azure experts through Azure Forums.
  • Connect with @AzureSupport – the official Microsoft Azure account for improving customer experience by connecting the Azure community to the right resources: answers, support, and experts.
  • If you need more help, you can file an Azure support incident. Go to the Azure support site and select Get Support.