DayuanJiang/next-ai-draw-io · critical · Error

Azure requires either AZURE_BASE_URL or AZURE_RESOURCE_NAME

Error message

Azure requires either AZURE_BASE_URL or AZURE_RESOURCE_NAME to be set. Please set one in your .env.local file.

What it means

Azure provider needs a base URL: either AZURE_BASE_URL directly or AZURE_RESOURCE_NAME (used to construct https://<name>.openai.azure.com) in addition to the API key.

Source

Thrown at lib/ai-providers.ts:678

            )
        }
    } else {
        // Use custom env var name if provided, otherwise use default
        const requiredVar = customApiKeyEnv || PROVIDER_ENV_VARS[provider]
        if (requiredVar && !process.env[requiredVar]) {
            throw new Error(
                `${requiredVar} environment variable is required for ${provider} provider. ` +
                    `Please set it in your .env.local file.`,
            )
        }
    }

    // Azure requires either AZURE_BASE_URL or AZURE_RESOURCE_NAME in addition to API key
    if (provider === "azure") {
        const hasBaseUrl = !!process.env.AZURE_BASE_URL
        const hasResourceName = !!process.env.AZURE_RESOURCE_NAME
        if (!hasBaseUrl && !hasResourceName) {
            throw new Error(
                `Azure requires either AZURE_BASE_URL or AZURE_RESOURCE_NAME to be set. ` +
                    `Please set one in your .env.local file.`,
            )
        }
    }
}

/**
 * Get the AI model based on environment variables
 *
 * Environment variables:
 * - AI_PROVIDER: The provider to use (bedrock, openai, anthropic, google, azure, ollama, openrouter, aihubmix, deepseek, siliconflow, sglang, gateway, modelscope)
 * - AI_MODEL: The model ID/name for the selected provider
 *
 * Provider-specific env vars:
 * - OPENAI_API_KEY: OpenAI API key
 * - OPENAI_BASE_URL: Custom OpenAI-compatible endpoint (optional)
 * - ANTHROPIC_API_KEY: Anthropic API key

View on GitHub (pinned to 155ef4f7ac)

Solutions

  1. Set AZURE_RESOURCE_NAME=your-resource (simplest) or AZURE_BASE_URL=https://your-resource.openai.azure.com in .env.local
  2. Confirm the resource name matches your Azure OpenAI resource
  3. Restart the server after editing env

Example fix

# before
AI_PROVIDER=azure
AZURE_API_KEY=...

# after
AI_PROVIDER=azure
AZURE_API_KEY=...
AZURE_RESOURCE_NAME=my-azure-openai-resource
Defensive patterns

Strategy: validation

Validate before calling

const azureOk = !!process.env.AZURE_BASE_URL || !!process.env.AZURE_RESOURCE_NAME
if (provider === 'azure' && !azureOk) failFast('Azure needs AZURE_BASE_URL or AZURE_RESOURCE_NAME')

Try / catch

try { getAIModel() } catch (e) { if ((e as Error).message.includes('AZURE_BASE_URL')) showAzureSetupGuide() }

Prevention

When it happens

Trigger: Provider azure with AZURE_API_KEY set but neither AZURE_BASE_URL nor AZURE_RESOURCE_NAME present.

Common situations: Copying Azure OpenAI key setup from older docs, forgetting the resource name, or renaming the resource without updating env.

Understand the failure class

Background: "environment variable is not set" and "Missing keys in environment" errors: what missing required env var messages mean and how to fix them — this error's family across 28 libraries.

Related errors


AI-assisted analysis of DayuanJiang/next-ai-draw-io@155ef4f7ac (2026-08-27). Data as JSON: /api/errors/ac14960f91d2d69b. Report an issue: GitHub.