earendil-works/pi · error
Model catalog refresh timed out.
Error message
Model catalog refresh timed out.
What it means
Error "Model catalog refresh timed out." thrown in earendil-works/pi.
Source
Thrown at packages/coding-agent/src/extensions/llama/index.ts:60
export default function llamaExtension(pi: ExtensionAPI): void {
const provider = createLlamaProvider();
pi.registerProvider(provider.provider);
const syncCatalog = async (
ctx: ExtensionCommandContext,
client: LlamaClient,
catalog?: LlamaModelInfo[],
): Promise<LlamaModelInfo[]> => {
const signal = AbortSignal.timeout(15_000);
const current = catalog ?? (await client.list({ signal }));
provider.setCatalog(current, client.serverUrl);
const result = await ctx.modelRegistry.refresh({
providers: [LLAMA_PROVIDER_ID],
// /llama already contacted the configured llama.cpp server, so keep this refresh live even in PI_OFFLINE.
allowNetwork: true,
signal,
});
if (result.aborted) throw new Error("Model catalog refresh timed out.");
const refreshError = result.errors.get(LLAMA_PROVIDER_ID);
if (refreshError) throw refreshError;
return current;
};
const loadModel = async (
ctx: ExtensionCommandContext,
ui: LlamaUi,
client: LlamaClient,
catalog: LlamaModelInfo[],
target: LlamaModelInfo,
): Promise<void> => {
const loaded = catalog.filter((model) => model.id !== target.id && modelIsLoaded(model));
let replace = false;
if (loaded.length > 0) {
const choice = await ui.select(`${loaded.length} model${loaded.length === 1 ? " is" : "s are"} loaded`, [
"Unload all and load",
"Keep loaded and load",View on GitHub (pinned to 4af9d21d3b)
When it happens
Trigger: Thrown at packages/coding-agent/src/extensions/llama/index.ts:60 when the library encounters an invalid state.
Common situations: See trigger scenarios.
Understand the failure class
- Timeouts: ETIMEDOUT, deadlines, and hung requests — what actually expires when a request times out.
AI-assisted analysis of earendil-works/pi@4af9d21d3b (2026-08-24).
Data as JSON: /api/errors/d0027f1017483716.
Report an issue: GitHub.