earendil-works/pi · error
Invalid Azure OpenAI base URL: ${baseUrl}
Error message
Invalid Azure OpenAI base URL: ${baseUrl} What it means
Error "Invalid Azure OpenAI base URL: ${baseUrl}" thrown in earendil-works/pi.
Source
Thrown at packages/ai/src/api/azure-openai-responses.ts:192
...buildBaseOptions(model, context, options, apiKey),
toolChoice: options?.toolChoice,
} satisfies AzureOpenAIResponsesOptions;
const clampedReasoning = options?.reasoning ? clampThinkingLevel(model, options.reasoning) : undefined;
const reasoningEffort = clampedReasoning === "off" ? undefined : clampedReasoning;
return stream(model, context, {
...base,
reasoningEffort,
} satisfies AzureOpenAIResponsesOptions);
};
function normalizeAzureBaseUrl(baseUrl: string): string {
const trimmed = baseUrl.trim().replace(/\/+$/, "");
let url: URL;
try {
url = new URL(trimmed);
} catch {
throw new Error(`Invalid Azure OpenAI base URL: ${baseUrl}`);
}
const isAzureHost =
url.hostname.endsWith(".openai.azure.com") ||
url.hostname.endsWith(".cognitiveservices.azure.com") ||
url.hostname.endsWith(".ai.azure.com");
const normalizedPath = url.pathname.replace(/\/+$/, "");
// Ensure Azure hosts have /openai/v1 as base path so the AzureOpenAI SDK
// can append /deployments/<model>/... and ?api-version=v1 correctly.
if (
isAzureHost &&
(normalizedPath === "" ||
normalizedPath === "/" ||
normalizedPath === "/openai" ||
normalizedPath === "/openai/v1/responses")
) {
url.pathname = "/openai/v1";View on GitHub (pinned to 4af9d21d3b)
Solutions
- Provide a valid https:// endpoint URL for the Azure OpenAI base URL.
When it happens
Trigger: Thrown at packages/ai/src/api/azure-openai-responses.ts:192 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of earendil-works/pi@4af9d21d3b (2026-08-24).
Data as JSON: /api/errors/a7168271c18a546e.
Report an issue: GitHub.