A Football League Is Breaking Docker Pulls Across Spain

4 min read 1 source clear_take
├── "IP-based blocking is fundamentally incompatible with shared CDN infrastructure and causes massive collateral damage"
│  ├── littlecranky67 (Hacker News, 789 pts) → read

Spent over an hour debugging cryptic TLS certificate errors on a self-hosted GitLab runner, only to discover the root cause was La Liga's IP blocks hitting Cloudflare IPs that Docker Hub depends on. Their firsthand experience demonstrates how shared infrastructure means anti-piracy blocks silently break completely unrelated developer tooling.

│  └── top10.dev editorial (top10.dev) → read below

Argues this is a case study in legal mechanisms from one domain colliding with shared infrastructure in another. Cloudflare's shared-IP model means hundreds of thousands of services — Docker registries, APIs, SaaS products — go dark when a single IP is blocked for hosting an illegal stream. The collateral damage isn't a bug but an inherent architectural reality of modern CDNs.

├── "The debugging experience is uniquely frustrating because the symptoms give no indication of the actual cause"
│  └── littlecranky67 (Hacker News, 789 pts) → read

Describes receiving misleading TLS errors ('certificate is not valid for any names') that sent them down a certificate debugging rabbit hole for over an hour. Nothing in the error output pointed to an ISP-level IP block as the cause, making it nearly impossible to diagnose without prior awareness of the La Liga blocking pattern.

└── "The situation is so normalized in Spain that community workarounds have become infrastructure themselves"
  └── top10.dev editorial (top10.dev) → read below

Notes that a community-built website exists specifically to check whether a La Liga match is currently causing IP blocks, and argues that the very existence of such a tool 'tells you everything about the state of the situation.' The fact that developers must consult a football schedule to debug networking issues highlights how deeply this legal overreach has embedded itself into routine development workflows in Spain.

What Happened

A developer in Spain spent over an hour debugging why their self-hosted GitLab runner couldn't pull Docker images. The symptoms were baffling: TLS errors with messages about certificates not valid for any names, failed after six retry attempts. No configuration had changed. The runner worked fine yesterday.

The root cause had nothing to do with Docker, GitLab, TLS, or certificates. Spain's La Liga football league holds court orders authorizing ISPs to block IP ranges associated with illegal match streams — and those IP ranges belong to Cloudflare. Docker Hub uses Cloudflare's R2 storage for image layers. When a match kicks off, ISPs activate the blocks, and every service sharing those Cloudflare IPs goes dark.

The experience varies by ISP. Some developers get cryptic TLS errors that send them down certificate debugging rabbit holes. Others, as one commenter reported, get nothing at all — no ping response, no traceroute, just a browser spinner followed by "page not found." There's even a community-built website for checking whether a La Liga match is currently causing blocks. That this website needs to exist tells you everything about the state of the situation.

Why It Matters

This isn't a story about football. It's a case study in what happens when legal mechanisms designed for one domain collide with shared infrastructure that underpins a completely different one.

Cloudflare operates on a shared-IP model. Hundreds of thousands of services — Docker registries, API endpoints, corporate zero-trust tunnels, SaaS products — sit behind overlapping IP ranges. When a court order instructs ISPs to block an IP address hosting an illegal football stream, it simultaneously blocks every other service that happens to share infrastructure with that stream. The collateral damage isn't a bug in the blocking mechanism; it's the fundamental architecture of how modern CDNs work.

The technical community has been raising this alarm for years. This particular HN thread scored 789 points, and commenters noted this is far from the first time the issue has surfaced. But as one commenter put it: "Barring an Internet giant suing them in court, it really feels like this is unlikely to change as most just don't understand the why or the effect." La Liga's public responses have consistently dismissed the collateral damage, framing the blocks as necessary anti-piracy enforcement.

The ISP implementation makes diagnosis deliberately hard. A clean TCP reset or an HTTP error page would at least tell developers what's happening. Instead, some ISPs perform silent drops — packets simply vanish. A developer debugging a CI/CD failure has no way to distinguish 'Cloudflare is down' from 'my ISP is blocking Cloudflare because Real Madrid is playing' without external knowledge that the block exists. The failure mode violates every principle of good error reporting. You can't fix what you can't diagnose, and you can't diagnose what produces no signal.

This pattern isn't unique to Spain. Turkey has blocked Cloudflare IPs. Russia routinely blocks IP ranges belonging to major CDN providers. The UK's court-ordered blocks against piracy sites have occasionally caught legitimate services. What makes the La Liga case particularly instructive is its predictability — the blocks follow a football schedule — combined with its breadth — Cloudflare R2 is used by an enormous number of developer tools and services.

What This Means for Your Stack

If you run CI/CD pipelines that pull container images at build time — and almost everyone does — you have implicit dependencies on the reachability of Docker Hub via Cloudflare's network. This is true whether your runners are in Spain or not; the same class of legal-order-based blocking can happen in any jurisdiction.

Run a pull-through registry cache. Tools like Harbor, Nexus, or even Docker's own registry configured as a pull-through cache mean your builds only need to reach Docker Hub when an image tag is genuinely new. For any production CI/CD setup, a local registry mirror isn't a nice-to-have — it's table stakes for reliability, and the La Liga situation just happens to be the most absurd proof of why. Configure your Docker daemon's `registry-mirrors` setting, point it at your cache, and your builds survive any upstream outage — legal, technical, or football-related.

Pin image digests, not tags. If you're pulling `node:20` by tag, your build depends on DNS resolution and layer downloads succeeding *right now*. If you pin `node:20@sha256:abc123...` and your cache has already fetched those layers, the build is fully offline-capable. This also prevents supply chain attacks, so you get two wins.

Audit your Cloudflare dependency surface. The blocks don't just hit Docker Hub. If you use Cloudflare Tunnels (formerly Argo) for zero-trust access to internal services, those tunnels die during match time too. One commenter reported their Cloudflare Access reverse tunnels — their primary remote access method — going down during blocks. Map out which of your services route through Cloudflare, and decide which ones need a fallback path.

For teams with developers in affected countries: document the failure mode. Add it to your runbook. "If CI/CD fails with TLS certificate errors during European evening hours, check whether a La Liga match is on before debugging certificates" is an absurd sentence to write in a runbook, but it'll save someone an hour of their life.

Looking Ahead

The uncomfortable truth is that this problem sits at the intersection of legal systems that don't understand shared infrastructure and technical architectures that weren't designed to be resilient against legal-system-induced failures. No amount of engineering elegance protects you when a judge can sign an order that makes an IP range disappear from an entire country's internet. The engineering response is defense in depth: caches, mirrors, multi-CDN strategies, and the assumption that any external dependency can vanish without warning for reasons that have nothing to do with technology. The La Liga blocks are absurd, but they're also a preview of a world where infrastructure reliability increasingly depends on legal and political factors that engineers can't control — only mitigate.

Hacker News 1099 pts 400 comments

Tell HN: docker pull fails in spain due to football cloudflare block

I just spent 1h+ debugging why my locally-hosted gitlab runner would fail to create pipelines. The gitlab job output would just display weird TLS errors when trying to pull a docker images. After debu

→ read on Hacker News
danirod · Hacker News

Heh, lucky you, at least you get a message. My ISP just drops traffic to the affected IPs. No ping, no traceroute, just a spinner in the browser until it says "page not found".Every response and comment from LaLiga, the football organization responsible for this, has been so far that this

utrack · Hacker News

They block the whole of Cloudflare R2, I believe the Docker hub is just (heh) a collateral.When the La Liga match starts, everything that's proxied via CF (including zero access reverse tunnels) stops working.There's even a website made for checking if the match is on: https://ha

madbo1 · Hacker News

Reading this from India, where stuff like this is pretty much Tuesday business. But that’s not the problem; the problem is precisely the one hour of your life spent trying to figure out whether the issue is your DNS, your VPN, your configuration, or your programming. “The government in the country I

mrvaibh · Hacker News

This is a great example of why blanket IP blocking is such a terrible enforcement mechanism. Cloudflare hosts hundreds of thousands of services behind shared IP ranges — blocking one IP to stop a piracy stream takes out everything else on that IP, including Docker registries, API endpoints, and CDNs

jjcm · Hacker News

Barring an Internet giant suing them in court, it really feels like this is unlikely to change as most just don’t understand the why or the effect.Someone needs to write a heist movie set in Spain where a key part of the plan is they steal something while La Liga is blocking some key security route.

// share this

// get daily digest

Top 10 dev stories every morning at 8am UTC. AI-curated. Retro terminal HTML email.