earendil-works/pi · error
No API provider registered for api: ${api}
Error message
No API provider registered for api: ${api} What it means
Error "No API provider registered for api: ${api}" thrown in earendil-works/pi.
Source
Thrown at packages/ai/src/compat.ts:245
const apiKey = getEnvApiKey(model.provider, options?.env);
if (!apiKey || apiKey === AMBIENT_AUTH_MARKER) return options;
return { ...options, apiKey } as TOptions;
}
function hasResolvedCloudflareAuth(options: StreamOptions | undefined): boolean {
return hasExplicitApiKey(options?.apiKey) || typeof options?.headers?.["cf-aig-authorization"] === "string";
}
function getBuiltinProviderForModel(model: Model<Api>) {
if (getApiProvider(model.api) !== builtinApiProviderInstances.get(model.api)) return undefined;
const provider = compatModels.getProvider(model.provider);
return provider?.getModels().some((candidate) => candidate.api === model.api) ? provider : undefined;
}
function resolveApiProvider(api: Api) {
const provider = getApiProvider(api);
if (!provider) {
throw new Error(`No API provider registered for api: ${api}`);
}
return provider;
}
export function stream<TApi extends Api>(
model: Model<TApi>,
context: Context,
options?: ProviderStreamOptions,
): AssistantMessageEventStream {
const builtinProvider = getBuiltinProviderForModel(model);
if (builtinProvider) {
if (model.provider.startsWith("cloudflare-") && !hasResolvedCloudflareAuth(options)) {
return compatModels.stream(model, context, options as ModelsApiStreamOptions<TApi> | undefined);
}
return builtinProvider.stream(model, context, withEnvApiKey(model, options) as ApiStreamOptions<TApi>);
}
const provider = resolveApiProvider(model.api);
return provider.stream(model, context, withEnvApiKey(model, options) as StreamOptions);View on GitHub (pinned to 4af9d21d3b)
Solutions
- Register a provider implementation for that api value, or choose a supported api.
When it happens
Trigger: Thrown at packages/ai/src/compat.ts:245 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/33676e9ce2f9e57d.
Report an issue: GitHub.