AZURE

NotFound - Not Found: API Endpoint or Provider Missing

The API endpoint, resource provider, or API version doesn't exist—unlike ResourceNotFound (missing resource), this indicates infrastructure-level issues. This 404 client-side error means the endpoint/provider/version itself isn't available. The resource provider might not be registered in your subscription (registrationState ≠ "Registered"), the API version doesn't exist for that resource type, or the endpoint path format is wrong. Provider registration is required before creating resources of that type. Common in VM deployments, AKS cluster API calls, Azure SQL database operations, and App Service deployments when using unregistered providers or unsupported API versions.

#Common Causes

  • API Version Not Supported: The API version you're requesting doesn't exist for this resource type. API versions are resource-type-specific, and not all versions are available for all types.
  • Resource Provider Not Registered: The provider namespace isn't registered in your subscription (registrationState !== "Registered"). Providers must be registered before you can create resources of that type.
  • Invalid Endpoint Path: The REST API endpoint path format is incorrect (missing segments, typos in resource path, or malformed URL structure). The path doesn't follow the correct ARM structure.

Solutions

  1. 1Step 1: Diagnose - Query supported API versions: az provider show --namespace <provider-namespace> --query "resourceTypes[?resourceType=='<type>'].apiVersions" --output table
  2. 2Step 2: Diagnose - Check provider registration state: az provider show --namespace <provider-namespace> --query "registrationState" --output table
  3. 3Step 3: Diagnose - Verify endpoint path format follows the correct ARM structure: /subscriptions/{sub-id}/resourceGroups/{rg}/providers/{namespace}/{type}/{name}?api-version={version}
  4. 4Step 4: Fix - Register the provider if not registered: az provider register --namespace <provider-namespace>
  5. 5Step 5: Fix - Wait for registration to complete: az provider wait --namespace <provider-namespace> --registered
  6. 6Step 6: Fix - Use a supported API version from the list returned by the provider show command.
  7. 7Step 7: Verify - Retry your operation. It should succeed instead of returning NotFound.

</>Code Examples

Provider and API Version Diagnosis
1# This script helps diagnose NotFound errors by checking provider registration and API versions
2
3# Step 1: Example provider namespace (replace with your actual provider)
4PROVIDER_NAMESPACE="Microsoft.Compute"
5RESOURCE_TYPE="virtualMachines"
6echo "Checking provider: $PROVIDER_NAMESPACE"
7
8# Step 2: Check provider registration state
9echo "Checking provider registration state..."
10REGISTRATION_STATE=$(az provider show --namespace $PROVIDER_NAMESPACE --query "registrationState" -o tsv)
11echo "Registration state: $REGISTRATION_STATE"
12
13if [ "$REGISTRATION_STATE" != "Registered" ]; then
14  echo "WARNING: Provider is not registered. Registering..."
15  az provider register --namespace $PROVIDER_NAMESPACE
16  echo "Waiting for registration to complete..."
17  az provider wait --namespace $PROVIDER_NAMESPACE --registered
18  echo "Provider registered"
19else
20  echo "Provider is registered"
21fi
22
23# Step 3: Query supported API versions for the resource type
24echo "Checking supported API versions for $RESOURCE_TYPE..."
25az provider show \
26  --namespace $PROVIDER_NAMESPACE \
27  --query "resourceTypes[?resourceType=='$RESOURCE_TYPE'].apiVersions" \
28  --output table
29
30# Step 4: List all resource types for the provider
31echo "Listing all resource types for $PROVIDER_NAMESPACE..."
32az provider show \
33  --namespace $PROVIDER_NAMESPACE \
34  --query "resourceTypes[].resourceType" \
35  --output table
36
37# Step 5: Check other common providers
38echo "Checking registration state for common providers..."
39COMMON_PROVIDERS=("Microsoft.Storage" "Microsoft.Network" "Microsoft.ContainerService" "Microsoft.Sql")
40for provider in "${COMMON_PROVIDERS[@]}"; do
41  STATE=$(az provider show --namespace $provider --query "registrationState" -o tsv 2>/dev/null)
42  if [ ! -z "$STATE" ]; then
43    echo "  $provider: $STATE"
44  fi
45done
46
47# Step 6: Verify endpoint path format
48echo ""
49echo "ARM endpoint path format:"
50echo "  /subscriptions/{sub-id}/resourceGroups/{rg}/providers/{namespace}/{type}/{name}?api-version={version}"
51echo ""
52echo "Example:"
53SUBSCRIPTION_ID=$(az account show --query id -o tsv)
54echo "  /subscriptions/$SUBSCRIPTION_ID/resourceGroups/my-rg/providers/Microsoft.Compute/virtualMachines/my-vm?api-version=2023-01-01"
55
56# Step 7: Instructions for fixing common issues
57echo ""
58echo "Common fixes for NotFound:"
59echo "  1. Register unregistered providers: az provider register --namespace <namespace>"
60echo "  2. Use supported API versions from provider show command"
61echo "  3. Verify endpoint path matches ARM structure exactly"
62echo "  4. Check for typos in provider namespace or resource type"

Related Errors

Provider Information

This error code is specific to AZURE services. For more information, refer to the official AZURE documentation.

NotFound - Not Found: API Endpoint or Provider Missing | AZURE Error Reference | Error Code Reference