You printed it on a banner, a menu, a thousand business cards. It worked for months. Then one day someone scans it and gets an error, a “this link has expired” page, or simply nothing. The honest answer is almost always the same: the code didn’t break. Someone turned it off.
First, what kind of QR code is it?
There are two kinds, and only one of them can quietly stop working. A static code has its data baked directly into the printed pattern — a Wi-Fi password, a phone number, a plain link. Nothing sits between the scanner and the data, so a static code can’t “expire”; the only way it fails is if the printout itself is torn, smudged, or covered. A dynamic code is different: the pattern encodes a short redirect link, and that link forwards to wherever the owner points it. The upside is you can change the destination after printing. The catch is that the redirect lives on someone else’s server — and if that someone stops forwarding it, every copy of the code goes dark at once. (The full distinction is worth understanding: static vs. dynamic QR codes.)
The usual culprit: a redirect that got switched off
If a code that used to work suddenly doesn’t, it’s almost always a dynamic code whose redirect was shut off. The common reasons:
- A free trial ended, and the code was created during it.
- A paid plan was cancelled, downgraded, or lapsed on a failed payment.
- The provider discontinued the product, or went out of business.
- A “free” QR generator quietly retired old codes or moved them behind a paywall.
In every one of these cases the printed pattern is perfectly fine. What changed is that the server it points to stopped answering.
Why this happens — and why it’s a choice
Here’s the part the QR industry would rather you didn’t dwell on: a redirect doesn’t have to stop. Forwarding a short link to a destination costs next to nothing. When a provider kills your code the moment you stop paying, that isn’t a technical limit — it’s a business decision. The printed code is the hostage; renewing is the ransom.
We’ve watched it happen up close. A client of ours had materials out in the world pointing at dynamic codes from another service; the billing lapsed, and the codes went dead — not because anything broke, but because the provider chose to stop forwarding them. The artwork was fine. The dependency wasn’t.
Can you get it back? The honest answer
Mostly, no — and you should be wary of anyone who promises otherwise. That specific printed code points at a redirect you don’t control. It can only come back if whoever runs that redirect turns it back on, which usually means logging into the original service and paying again. If the company is gone, or you’ve lost access to the account, the code is effectively dead. No app “repairs” a QR code from the outside, because nothing is wrong with the code itself — the destination it was promised is simply no longer being served. (If you’re trying to recover one right now, start with fixing an expired QR code.)
How to never be in this position again
There are two reliable ways to make a printed code outlive a billing cycle:
- Use a static code when the data won’t change. A Wi-Fi password, a phone number, a vCard — encode it directly and there’s no redirect anyone can switch off. It works as long as QR codes exist.
- When you need a dynamic code — an editable destination, scan tracking — choose a provider whose commitment is that your codes keep working even if you stop paying.
That second point is the line we drew. Our commitment is that a live KeptQR code keeps redirecting even after you cancel or downgrade — what pauses is the paid stuff (editing destinations, analytics, creating new codes), not the redirect itself. We’d rather earn your subscription by being worth it than by holding your printed codes hostage. The commitment, in writing, is the Code Lifetime Promise; what’s free versus paid is on pricing.