continuedev/continue · error
HTTP ${e.response.status} ${e.response.statusText} from ${e.
Error message
HTTP ${e.response.status} ${e.response.statusText} from ${e.response.url}\n\n${e.response.body} What it means
Thrown in the Ollama customFetch path when a caught error's message references /api/show and the response was non-OK. /api/show is used to fetch model details, so this indicates Ollama answered but rejected the request — typically because the requested model name is not pulled/installed locally.
Source
Thrown at core/llm/index.ts:483
const error = await this.parseError(resp);
throw error;
}
return resp;
} catch (e: any) {
Logger.error(e, {
context: "llm_fetch",
url: String(input),
method: init?.method || "GET",
model: this.model,
provider: this.providerName,
});
// Errors to ignore
if (e.message.includes("/api/tags")) {
throw new Error(`Error fetching tags: ${e.message}`);
} else if (e.message.includes("/api/show")) {
throw new Error(
`HTTP ${e.response.status} ${e.response.statusText} from ${e.response.url}\n\n${e.response.body}`,
);
} else {
if (!isAbortError(e)) {
// Don't pollute console with abort errors. Check on name instead of instanceof, to avoid importing node-fetch here
console.debug(
`${e.message}\n\nCode: ${e.code}\nError number: ${e.errno}\nSyscall: ${e.erroredSysCall}\nType: ${e.type}\n\n${e.stack}`,
);
}
if (
e.code === "ECONNREFUSED" &&
e.message.includes("http://127.0.0.1:11434")
) {
const message = (await isOllamaInstalled())
? "Unable to connect to local Ollama instance. Ollama may not be running."
: "Unable to connect to local Ollama instance. Ollama may not be installed or may not running.";
throw new Error(message);
}View on GitHub (pinned to 5522c6f44c)
Solutions
- List installed models: curl http://localhost:11434/api/tags (or ollama list) and match the exact name/tag
- Pull the model: ollama pull <model>
- Fix typos or wrong tags in the model name in your config
- For partially pulled models, re-run ollama pull to complete it
Example fix
# before model: "mistral" # not installed -> 404 from /api/show # after ollama pull mistral model: "mistral:latest"
Defensive patterns
Strategy: validation
Validate before calling
const tags = await (await fetch('http://localhost:11434/api/tags')).json(); if (!tags.models.some(m => m.name === modelName)) throw new Error('model not pulled'); Type guard
const modelExists = (tags: { models: { name: string }[] }, name: string) => tags.models.some(m => m.name === name); Try / catch
catch (e) { if (e.message.includes('/api/show') && /404/.test(e.message)) { await pullModel(); retry(); } else throw e; } Prevention
- Run ollama list and use exact tags
- Pull models before referencing them
- Prefer canonical names like model:latest
When it happens
Trigger: Requesting a model that isn't present locally (e.g. mistral when only llama3 is pulled), a misspelled or non-canonical model tag, or a partially-pulled model, causing Ollama's /api/show to return 404.
Common situations: Using a model name from config that was never pulled on this machine; switching machines without re-pulling models; tag mismatches (e.g. llama3 vs llama3:latest vs llama3:8b).
Related errors
- Failed to fetch Ollama library: ${response.status}
- Error fetching tags: ${e.message}
- Unable to connect to local Ollama instance. Ollama may not b
- j.error
- Failed to embed chunk: ${await resp.text()}
AI-assisted analysis of continuedev/continue@5522c6f44c (2026-08-27).
Data as JSON: /api/errors/1f1f20d05ce53e2d.
Report an issue: GitHub.