Why Your Printed QR Code Suddenly Stopped Working
A code that scanned yesterday can go dead today if it routes through a vendor. Why it happens and how static codes prevent it.
A QR code that scanned perfectly last month can go completely dead today — not because the ink faded, but because a redirect somewhere quietly switched off. Here's why printed QR codes suddenly stop working, and why a static code never does.
It's a frustrating and surprisingly common experience: a customer points their phone at your menu, your poster, or your product label, and instead of your page they get an error, a blank screen, or someone else's content entirely. The squares look fine. So what happened? In almost every case, the culprit isn't the code — it's the invisible machinery behind a dynamic code. Let's diagnose it. 🐾
First, the good news: static codes don't do this
If your QR code is static, this article mostly doesn't apply to you. A static code encodes your destination directly in its pattern. When someone scans it, their phone reads the link straight off the squares — no server, no lookup, no middleman. As long as the destination page itself still exists, the code keeps working forever, offline, unchanged.
So if codes "suddenly stopping" is a mystery to you, that's a good sign: you're probably using static codes the way we recommend. The failures below almost all trace back to dynamic codes, which route every scan through a vendor's redirect. Our primer on static vs dynamic QR codes explains the split.
Reason 1: the free trial ended
Many "free" generators hand you a dynamic code and start a clock you may not have noticed. When the trial period ends, the vendor stops honoring the redirect. The code physically still works — the phone reads the vendor's short link fine — but that short link no longer forwards anywhere useful.
This is the classic bait-and-switch we describe in the dark side of free QR generators. The word "expire" makes it sound natural, but nothing expired on its own. Someone flipped a switch.
Reason 2: the subscription lapsed
Even paid dynamic codes depend on continued payment. Miss a renewal — a lapsed card, a forgotten invoice, a budget cut — and the redirect can be suspended. Your printed materials go dark until the account is settled. This is the dependency at the heart of QR code digital extortion: the code lives or dies by an ongoing relationship with the vendor.
Reason 3: the vendor shut down or changed
Companies pivot, get acquired, or simply go out of business. When a QR vendor's servers go offline, every dynamic code that pointed through their domain dies at once — no warning, no migration, nothing. Even if the company survives, they might retire a product line, change their domain, or alter their URL structure, any of which can break existing redirects.
A static code depends only on your own destination existing. A dynamic code depends on a whole company continuing to run a specific service, indefinitely.
Reason 4: scan limits were reached
Some plans cap how many scans a code may serve. Have a campaign go better than expected, and you can hit the ceiling — after which further scans may be blocked or redirected to an upsell page. Success, ironically, breaks the code. We cover why vendors structure plans this way in the subscription QR code business model.
Reason 5: the destination itself moved (this one can hit static too)
To be complete and fair: there's one failure that affects static and dynamic codes alike. If the actual page the code points to is taken down or its URL changes, the code leads to a dead link. For a static code, this is the only way it can "stop working," and it's fully within your control — keep the destination page alive, and the code is immortal. For a dynamic code, this is just one of several ways it can fail.
Diagnosing your own dead code
If a printed code stops working, here's how to figure out what happened:
- Scan it and read the raw link before following it. Does it show your real destination, or a short link on some vendor's domain?
- If it's your real link, the destination page is the problem — check that the URL still resolves. This is fixable on your side.
- If it's a vendor's short link, the redirect is the problem. Log into that vendor: trial ended, payment lapsed, scan cap, or account issue are the usual suspects.
- If the vendor's whole site is gone, the code can't be revived — you'll need to reprint, ideally with a static code this time.
| Cause | Affects static? | Affects dynamic? | Fixable without reprinting? |
|---|---|---|---|
| Trial ended | No | Yes | Only by paying the vendor |
| Subscription lapsed | No | Yes | Only by paying the vendor |
| Vendor shut down | No | Yes | No — reprint required |
| Scan limit hit | No | Yes | Only by upgrading |
| Destination page removed | Yes | Yes | Yes — restore the page |
How to make "suddenly stopped working" impossible
Notice that four of the five failure modes above simply cannot happen to a static code. That's the whole argument for using one wherever your link won't change:
- Use static codes for anything printed. Menus, signage, packaging, business cards — if the destination is stable, there's no reason to route through a vendor. You can create a free static QR code with no account and no expiry.
- Keep your destination page alive. The one thing a static code depends on is your own URL. Don't delete or move it without setting up a redirect on your own domain.
- If you need editability, self-host the redirect. Point a static code at a short link you control, so you can change the target without any vendor able to break it.
The bottom line
QR codes don't wear out and they don't expire on their own. When a printed one "suddenly stops working," it's almost always because a redirect you didn't control was switched off. Choose static, keep your destination alive, and your codes will keep scanning for as long as the paper lasts. That reliability is exactly what the case for static, open QR codes is built on, and why our manifesto insists on never-expiring codes.
Frequently asked questions
Do QR codes expire after a certain time?
Static codes never expire — the data is in the pattern, so there's no clock and no server to switch off. Only dynamic codes can "expire," and that's really a vendor choosing to stop honoring a redirect, not the code decaying on its own.
My code worked yesterday and is dead today. What's most likely?
If it's a dynamic code, the most common causes are a trial ending, a lapsed payment, or a scan limit being reached. Scan the code and read the raw link: a vendor short link points to a redirect problem, while your own link points to a destination-page problem.
Can I fix a dead dynamic code without reprinting?
Sometimes — if the vendor is still operating and the issue is billing or a scan cap, paying or upgrading may restore it. If the vendor has shut down entirely, the redirect is gone for good and you'll need to reprint, ideally with a static code.
Will a static code ever stop working?
Only if the destination page it points to is taken down or moved. Keep that URL alive and the code works indefinitely, offline, with no vendor involved. That's the one thing under your control, and it's entirely up to you.
How can I tell if my printed codes are at risk?
Decode each one and check where it points. If any route through a third-party domain before reaching your page, they depend on that vendor and could fail. Replacing them with static or self-hosted codes removes the risk.
Make a QR code the honest way 🐾
Free forever, no tracking, no expiry — generated right in your browser.