Why Ollama says a model was not found, and how to fix it
Error: model 'llama3.2' not found, try pulling it first
Also appears as
- Error: pull model manifest: file does not exist
- Error: manifest for llama3.2:latest not found
- Error: could not find model 'mistral:7b-custom'
Short answer
Ollama model not found means the exact tag you requested, including the version suffix after the colon, does not exist locally or in the registry. Either the tag has a typo, the model was never pulled, or a custom Modelfile references a FROM path that does not resolve on this machine. Run ollama list to see what is actually installed, then pull or fix the Modelfile.
Affects: All Ollama versions, official library models and custom Modelfile builds
Fastest path to a working model
- 1Run ollama list to see exactly which models and tags are installed locally.
- 2Compare the tag you requested against the library name at ollama.com/library, including the suffix after the colon (for example :8b or :latest).
- 3Pull the model explicitly: ollama pull llama3.2:latest.
- 4If you are using a custom Modelfile, confirm the FROM line points to a GGUF file or model name that actually exists on disk or in the registry.
- 5Rebuild the custom model after fixing the Modelfile: ollama create mymodel -f ./Modelfile.
How to confirm this is your problem
- ollama run <name> immediately fails with a not found or manifest error instead of starting a pull
- The model worked yesterday but fails today after a machine or environment change
- A custom model created with ollama create cannot be run under the name you gave it
- An API call to /api/generate returns a model not found error
Root causes and fixes
Typo or wrong tag in the model name
Ollama model names are case-sensitive and tag-specific; llama3.2 without a tag defaults to :latest, but requesting llama3.2:7b when only llama3.2:3b exists in the library, or misspelling the family name, produces a not-found error because the registry has no matching manifest.
Fix: Check the exact name and available tags on ollama.com/library or with ollama list for models you already pulled, then use the exact string including the tag.
ollama list ollama show llama3.2 --modelfile
The model was never pulled to this machine
Ollama does not auto-pull on every command in older CLI versions or in scripted, non-interactive contexts, so a fresh machine, a new Docker container, or a wiped .ollama directory simply has no local copy, and the run fails before any download starts.
Fix: Explicitly pull the model first with ollama pull <name> and wait for it to complete before calling run or the API.
ollama pull llama3.2:latest
Custom Modelfile FROM path is wrong or unreachable
A Modelfile that does FROM ./my-model.gguf resolves relative to the directory you run ollama create from, not the Modelfile's own location; a FROM base-model:tag line pointing at a base model that itself was never pulled will also fail during the build step.
Fix: Use an absolute path for local GGUF files in FROM, or pull the base model referenced in FROM before running ollama create.
ollama create mymodel -f /full/path/Modelfile
Registry or network access is blocked (air-gapped or proxy environment)
In air-gapped or heavily proxied networks, ollama pull cannot reach the registry to resolve the manifest at all, and the resulting error can look identical to a simple not-found because the client cannot distinguish network failure from a missing tag.
Fix: For air-gapped installs, download the GGUF manually and import it via a Modelfile with a local FROM path instead of relying on ollama pull reaching the public registry.
ollama create offline-model -f ./Modelfile
Model was deleted or storage was reset
If disk cleanup, a container restart without a persistent volume, or an explicit ollama rm removed the model blobs, the manifest reference in the models directory no longer points to valid data, and Ollama reports it as not found on the next run.
Fix: Re-pull the model, and if running in a container, mount a persistent volume for the Ollama models directory so pulled models survive container restarts.
ollama pull <name>
Diagnostic commands
List installed models
ollama list
If the model you want is absent, it needs to be pulled or created; if it is present under a slightly different tag, that mismatch is your bug.
Inspect a custom model's build source
ollama show <name> --modelfile
Confirms exactly what FROM line and parameters were used when the model was created, useful for catching a stale or wrong base path.
Check registry reachability
curl -I https://registry.ollama.ai
A timeout or DNS failure here means pull failures are a network problem, not a naming problem, which matters most in air-gapped or proxied environments.
Stopping it from happening again
- Pin exact model tags (not bare :latest) in scripts and Modelfiles so a registry update never silently changes what gets pulled.
- Mount a persistent volume for the Ollama models directory in any containerized deployment.
- For air-gapped sites, maintain an internal mirror of the GGUF files you depend on rather than relying on runtime pulls from the public registry.
- Add a startup check in deployment scripts that runs ollama list and fails fast if an expected model is missing.
When this becomes an architecture problem
If you are maintaining more than a handful of custom Modelfiles across multiple air-gapped sites, manual pull-and-create workflows stop scaling; that is the point to build a proper internal model registry and promotion pipeline instead of hand-managing GGUF files per machine.
Frequently asked questions
Why does ollama pull work but ollama run still say not found?
This usually means the tag used in run does not exactly match what was pulled. Ollama treats llama3.2 and llama3.2:latest as the same thing, but llama3.2:8b and llama3.2:70b are different tags entirely; run ollama list to see the exact string to use.
Can I use Ollama without internet access?
Yes. Download a GGUF file separately, write a Modelfile with FROM pointing to that local file's absolute path, and run ollama create to register it. No connection to the public registry is needed after that.
Does ollama create download anything from the internet?
Only if the FROM line references a model name still needing a pull, like FROM llama3.2. If FROM points at a local GGUF path you already have on disk, ollama create works entirely offline.
Size it properly next time
Free calculators that prevent this class of failure before you provision hardware.
Open-Weight Model Selector
A 10-question assessment that matches your hardware budget, workload complexity, and operational maturity to the right open-weight model size class.
Free ToolAir-Gapped LLM Deployment Checklist
A practical control checklist for deploying and maintaining large language models in a fully air-gapped environment, from initial staging through ongoing patching and drift detection.
Related problems
Ollama connection refused when calling the API
Ollama connection refused almost always means the ollama serve process is not running, is listening on a different interface than expected, or is bound to 127.0.0.1 while your client is calling it from another host or container. Start or restart the service, confirm it is listening on 11434, and if you need remote access set OLLAMA_HOST to 0.0.0.0 explicitly.
llama.cpp fails to load a GGUF model file
A GGUF load failure in llama.cpp is almost always one of three things: the file was truncated or corrupted during download, the file uses a quantization or metadata format newer than your llama.cpp build supports, or the model was split into multiple GGUF shards and only some of them were downloaded. Verify the file size and checksum first, then check your llama.cpp version against the GGUF version the file requires.
Model loading fails offline or in an air-gapped environment despite having local files
Passing a local path to from_pretrained does not guarantee an offline load, because transformers and related libraries (tokenizers, some model configs, auto-mapping code) can still issue background network calls to check for updates, fetch a referenced remote component, or resolve auto_map entries that point back at the original HuggingFace repo. The fix is to set HF_HUB_OFFLINE=1 and TRANSFORMERS_OFFLINE=1 explicitly, use a complete local snapshot directory (not just the weights file), and verify no config field still references a remote repo ID.
Corrupted model checkpoint fails to load or loads with garbage weights
A corrupted checkpoint means the bytes on disk do not match the original artifact the model author published, whether from an interrupted download, a bad copy between systems, disk-level bit rot, or a failed write during a save operation. There is no reliable way to repair a corrupted deep learning checkpoint; the fix is always to verify the file against a known-good hash or size and re-obtain a clean copy, then build a verification step into your pipeline so the same failure does not silently recur.
GuideAir-Gapped LLM Deployment Patterns That Actually Work
Air-gapped LLM deployment patterns that work: offline model transfer, update workflows, monitoring without telemetry, and CMMC-ready architectures.
GuideThe 2026 Open-Weight LLM Landscape: A Practical Map
A practical map of the 2026 open-weight LLM landscape: model families, license terms, and which model fits your VRAM budget and use case.
Still stuck, or tired of fighting your own infrastructure?
Netray deploys and operates on-prem AI for regulated manufacturers and defense suppliers. We have debugged this stack in production, on air-gapped networks, at scale.