Why Your QR Code Stopped Working (And Who's To Blame)
Printed QR codes don't break. Scanners don't fail. If your QR stopped working, someone else turned it off — and this article explains who.
If you're reading this, a QR code you generated — and probably printed on something expensive — has stopped scanning. Before you blame the printer or the ink or your phone, let's be clear: printed QR codes don't go bad. The pattern is either there and scannable or it isn't. Physical degradation usually isn't the answer.
In almost every case of "my QR code stopped working," the actual cause falls into one of the categories below.
1. Your QR code is dynamic, and the provider disabled it
This is, by far, the most common cause. If you generated your QR code at a service that offered "tracking," "editing," or a subscription, your code is almost certainly dynamic — it routes through the provider's server. The moment the provider disables the redirect, your code breaks. Common triggers:
- Your free trial expired
- Your subscription lapsed (missed payment, expired card, account closure)
- You hit a scan limit
- The provider sunset the product or went out of business
- Your account was flagged or terminated for any reason
The test: use our QR scanner to decode the raw URL inside the QR. If it's something like qrco.de/abc or rebrand.ly/xyz — not your actual destination — your code was dynamic. See how redirect hijacking works for the mechanics.
Fix: regenerate the QR as a static code encoding your actual destination. Replace the printed copies. For future QR codes, use a static generator.
2. The destination URL itself is gone
If your QR code encodes, say, https://example.com/promo-2023, and that page has been moved or deleted, the scan reaches an error page. The QR code still works perfectly — your website doesn't.
Fix: restore the original URL, set up a server-side redirect from the old URL to the new one, or reprint the QR with the updated destination. Static QR codes cannot be edited after printing — this is usually a good thing, but in this case, reprinting is the only option.
3. The domain expired
If the QR code points to a domain you let expire or that someone else let expire, scans will fail or redirect to a domain parking page — sometimes to malicious content, depending on who bought the expired domain.
Fix: renew the domain, or reprint the QR with a stable destination.
4. The QR code has been physically damaged beyond error-correction capacity
QR codes include built-in error correction (levels L, M, Q, H — recovering 7%, 15%, 25%, or 30% of the code respectively). Light damage — scratches, a coffee stain on one corner — is usually tolerated. But deep scratches, heavy wear, or obstruction covering more than the error-correction threshold will break scanning.
Fix: reprint. For outdoor or high-wear applications, use the H (30%) error correction level next time — it's available in the error correction dropdown in any decent generator including ours.
5. The contrast is too low
If you customized the QR with low-contrast colors — light gray on white, dark blue on black — scanners may struggle to read it even when the physical code is intact. Some new phones are more tolerant than others.
Fix: regenerate with higher contrast (black on white is optimal). Our generator warns you when foreground and background contrast drops below scanner-safe thresholds.
6. You encoded something the scanner doesn't handle
Rare but possible: some older scanner apps don't handle certain formats (custom URIs, very long vCards, exotic protocol schemes). Modern iOS and Android camera apps handle common formats, but niche apps may fail.
Fix: test with multiple scanners. If only niche scanners fail, the issue is their compatibility, not your code.
The underlying issue
Cases 2–6 are straightforward and fixable. Case 1 — dynamic QR disabled by the provider — is an engineered trap, and it's responsible for most broken QR codes in the wild. If you've been paying a subscription just to keep your QR working, you're stuck in the subscription QR trap.
The only permanent fix is to regenerate as a static code. Static QR codes contain your actual destination, don't route through anyone's server, and cannot be disabled by any third party. Read static vs dynamic QR codes for the technical distinction, or the full story of QR code scams for why so many generators default to dynamic.
What to do right now
- Scan the broken QR and check the decoded URL. If it's a short redirect, you've been hit by case 1.
- Regenerate the code as static using your original destination URL: URL generator, WiFi, vCard, email, phone, or text.
- Reprint the affected material once. Done. Your new QR code will not stop working, ever.
QR codes should be boring, permanent infrastructure. That they so often aren't is a failure of the industry, not the format.
Ready for a static QR code?
Generate one in your browser — no account, no tracking, no subscription. What you create belongs to you.
Related reading
The Truth About QR Code Scams: How 'Free' Generators Extort Users
Dynamic QR codes let providers track, edit, disable, and monetize your codes after you've printed them. Here's how the scheme works and how to avoid it.
Static vs Dynamic QR Codes: What Every User Should Know
One encodes your content; the other encodes a redirect. That single difference determines whether your QR code will still work in five years.
The Subscription QR Trap: How Providers Hold Your Links Hostage
The bait is a free QR code. The hook is that it only works while you pay. The trap closes the day you print ten thousand copies.
QR Code Redirect Hijacking: The Invisible Middleman
When your QR code works, the middleman is invisible. When it breaks, it's too late. Understanding the redirect model is the first step to avoiding it.
QR Code Held Hostage: Buy One Month, Never the Annual Plan
Triage for a code that has been switched off: who actually controls it, what escape costs, and the one move that stops it recurring.
QR Scan Quotas: You Never See the Failure, Your Customers Do
Metering does not break a code cleanly. It breaks it for some people, sometimes — and your dashboard reports the outage as a campaign losing steam.