paperclipai/paperclip · error
Pi requires `adapterConfig.model` in provider/model format.
Error message
Pi requires `adapterConfig.model` in provider/model format.
What it means
Error "Pi requires `adapterConfig.model` in provider/model format." thrown in paperclipai/paperclip.
Solutions
- Set adapterConfig.model in provider/model format for Pi.
When it happens
Trigger: Thrown at packages/adapters/pi-local/src/server/models.ts:177 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@120ae5428f (2026-08-18).
Data as JSON: /api/errors/1fb581d798b0787f.
Report an issue: GitHub.
Appendix: source
Thrown at packages/adapters/pi-local/src/server/models.ts:177
const now = Date.now();
pruneExpiredDiscoveryCache(now);
const cached = discoveryCache.get(key);
if (cached && cached.expiresAt > now) return cached.models;
const models = await discoverPiModels({ command, cwd, env });
discoveryCache.set(key, { expiresAt: now + MODELS_CACHE_TTL_MS, models });
return models;
}
export async function ensurePiModelConfiguredAndAvailable(input: {
model?: unknown;
command?: unknown;
cwd?: unknown;
env?: unknown;
}): Promise<AdapterModel[]> {
const model = asString(input.model, "").trim();
if (!model) {
throw new Error("Pi requires `adapterConfig.model` in provider/model format.");
}
const models = await discoverPiModelsCached({
command: input.command,
cwd: input.cwd,
env: input.env,
});
if (models.length === 0) {
throw new Error("Pi returned no models. Run `pi --list-models` and verify provider auth.");
}
if (!models.some((entry) => entry.id === model)) {
const sample = models.slice(0, 12).map((entry) => entry.id).join(", ");
throw new Error(
`Configured Pi model is unavailable: ${model}. Available models: ${sample}${models.length > 12 ? ", ..." : ""}`,
);
}View on GitHub (pinned to 120ae5428f)