Ollama Pull Fails with "max retries exceeded" or EOF: How I Get Downloads to Finish
Model downloads that stall at 97% or die with EOF. The five things that fixed it for me: resume behaviour, MTU, DNS, proxy variables and a corrupted blob cache.

Ollama Pull Fails with "max retries exceeded" or EOF: How I Get Downloads to Finish
ollama pull deepseek-r1:14b crawls to 96%, then: "Error: max retries exceeded: EOF". A 9 GB download dying near the end is the most annoying failure in the local-LLM workflow. Here is my checklist, in the order that solves it fastest.
First: just re-run the pull
Related: Midjourney vs DALL-E vs Flux: A Practical Image-Tool Comparison Framework →
Related: Ollama Error "model requires more system memory": How I Fixed It in 10 Minutes →
Ollama resumes from completed blobs. Re-running is not wasted time, and on a flaky connection two or three attempts genuinely finish the job:
until ollama pull deepseek-r1:14b; do echo "retrying..."; sleep 5; doneThat loop is now permanently in my shell history. It rescued the 14B download after four attempts.
Fix 1 — Lower the MTU (VPN and some ISPs)
Related: 9 Free AI Coding Tools Every Developer Should Try in 2026 →
Related: Ollama Answers Get Cut Off Mid-Sentence: num_ctx vs num_predict Explained →
Large packets silently dropped mid-transfer produce exactly this EOF. On my VPN:
ip link show eth0 | grep mtu
sudo ip link set dev eth0 mtu 1400If that fixes it, make it permanent in your VPN profile instead of per boot.
Fix 2 — Change DNS
Related: Sora 2 Review: OpenAI's Video Model Is Finally Useful for Real Work →
Related: Ollama "connection refused on 127.0.0.1:11434": The 5 Causes I Have Actually Hit →
registry.ollama.ai resolves through a CDN. My ISP resolver kept sending me to a failing edge node.
# /etc/resolv.conf (WSL2: disable generation first in /etc/wsl.conf)
nameserver 1.1.1.1
nameserver 8.8.8.8Fix 3 — Teach the daemon about your proxy
Related: How to Clone Your Voice with AI in 2026 (Free and Paid Options) →
Related: Ollama Running Slow? 7 Fixes That Actually Worked on My Machine →
Exporting the variables in your shell does nothing — the daemon is a separate process:
sudo systemctl edit ollama
# [Service]
# Environment="HTTPS_PROXY=http://proxy:3128"
sudo systemctl daemon-reload && sudo systemctl restart ollamaFix 4 — Clear a corrupted partial blob
Related: DeepSeek-R1 Shows Its <think> Tags in the Output — Here Is How I Strip Them →
If one specific model always dies at the same percentage, its partial blob is bad:
ls ~/.ollama/models/blobs | grep partial
rm ~/.ollama/models/blobs/*-partial*
ollama pull deepseek-r1:14bOn macOS the same path applies; on Windows it is C:\Users\<you>\.ollama\models.
Fix 5 — Check free disk before blaming the network
Ollama needs the full model size free, plus temp space. A "download" failure that is really a disk failure looks identical in the log. I hit this at 96% with 6 GB left for an 8.9 GB model — see moving the Ollama models directory.
My working setup
# ~/.bashrc
alias opull='f(){ until ollama pull "$1"; do sleep 5; done; }; f'Plus MTU 1400 on the VPN interface and Cloudflare DNS. Downloads have not failed since.
FAQ
Does re-pulling waste bandwidth? No. Completed layers are content-addressed and skipped.
Can I copy models between machines?
Yes — copy the whole ~/.ollama/models directory. Faster than re-downloading on a slow line.
Where do I choose which model to pull? Sizes and quantization trade-offs are in the local LLM guide; runner comparisons in Ollama vs LM Studio vs Jan and the ultimate AI tools guide.
Related Articles
مقالات ذات صلة — تابع القراءة داخل الموقع
مواضيع مقترحة · Suggested Topics
استكشف مواضيع ومحاور ذات صلة بهذا المقال — روابط داخلية لتعميق قراءتك.
The Daily Pulse
Newsletter delivery is not connected yet. This form only saves your address in this browser; no email is sent.
Get concise, source-linked technology notes without the hype.




