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 keyView on GitHub (pinned to 155ef4f7ac)
Solutions
- Set AZURE_RESOURCE_NAME=your-resource (simplest) or AZURE_BASE_URL=https://your-resource.openai.azure.com in .env.local
- Confirm the resource name matches your Azure OpenAI resource
- 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
- Document Azure's dual env options in .env.example
- Use AZURE_RESOURCE_NAME for standard azure.com endpoints
- Verify the resource name against the Azure portal
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
- At least one of [${customApiKeyEnv.join(", ")}] environment
- Either ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN environment
- ${requiredVar} environment variable is required for ${provid
- ${varName} must be a valid integer, got: ${value}
- ${varName} must be >= ${min}, got: ${parsed}
AI-assisted analysis of DayuanJiang/next-ai-draw-io@155ef4f7ac (2026-08-27).
Data as JSON: /api/errors/ac14960f91d2d69b.
Report an issue: GitHub.