If a QR code used to scan fine and now opens an error, a “this QR code has expired” notice, or a page you don’t recognize, the code itself is almost never the problem. The black-and-white pattern can’t wear out or time out. What changed is the web address it points to: most often a generator’s redirect that was switched off because a trial or subscription ended, and sometimes a page that was moved or a domain that lapsed.
The fix depends on whose address is inside the code. Decode it to see the real URL. If it belongs to a QR generator, renew or contact that vendor to bring the redirect back. If it belongs to you, restore the page at that exact address. If you control neither, reprint with a code that points at a URL you own and can edit.
First, rule out a scanning problem
This guide is about codes that scan but go nowhere useful. If your phone won’t recognize the code at all, that’s a different issue, usually print size, contrast, or a missing white border, and it’s covered in our guide on a QR code not scanning.
The quick test: open your phone camera and point it at the code. If a link preview pops up, the code is being read correctly and the failure is happening after the scan. Keep reading.
What a QR code actually stores
A QR code is a two-dimensional barcode developed in 1994 by DENSO WAVE, then part of DENSO Corporation. It holds a small amount of data, like text or a web address, and it holds exactly that data forever. It doesn’t call home, doesn’t check a license, and has no expiry date built into it.
So when people say a QR code “expired,” what they mean is that the address stored in it no longer leads where it used to. That’s why the first step is always to find out what address is in there.
Static vs dynamic QR codes: why one kind breaks
A static QR code stores your destination directly. If you made a static code for https://yourbakery.com/menu, that full address is written into the pattern. No company sits in the middle, so canceling a generator account has no effect on it. It keeps working as long as that page exists.
A dynamic QR code stores a short link on the generator’s server instead, something like a vendor’s short domain plus a random code. When someone scans it, the vendor’s server looks up where you told it to send people and forwards them there. That’s what lets you change the destination later without reprinting, and it’s why dynamic codes are often sold with scan statistics.
The catch is that the forwarding only happens while the vendor keeps it running for you. QR Code Generator (qr-code-generator.com) states on its own blog that dynamic codes “expire or become inactive if the link between the short URL and the destination breaks,” that “most providers require an active plan to maintain the redirection service,” and that codes created during a free trial “deactivate automatically when the trial period finishes.” The same article says static codes keep working because they “do not require an active subscription.”
That’s the most common story behind a printed QR code that no longer works: someone made it on a free trial, printed it on flyers, signs, or packaging, and weeks later the trial ended and every scan started landing on the vendor’s page instead of yours.
How to diagnose a QR code that stopped working
Step 1: read the real URL. Point your phone camera at the code and look at the link preview before tapping it, or use any QR decoder app or website that displays the raw contents. Write the full address down.
Step 2: look at the domain. If it’s your own website, the code is static and the problem is on your site. If it’s a QR generator’s domain or a link shortener you don’t recognize, the code is dynamic or shortened and depends on that service.
Step 3: open the URL on a computer and see what comes back. A vendor page saying the code is inactive, paused, or expired points to a lapsed plan. A “link not found” or “this link has been disabled” message from a shortener means the short link was deleted or flagged. A 404 on your own site means the page moved or was removed. A browser error saying the site can’t be reached, or a parked page full of ads, usually means the domain expired or its DNS changed.
Step 4: if the redirect is working but lands on a broken page, the dynamic code is fine and the destination you set inside the generator is wrong or gone. Log in and update it.
Fix 1: bring the redirect back
If the code points to a generator’s short link, log in to the account that created it. Look for the code in your list and check its status. If the plan or trial lapsed, renewing is usually the fastest way back. QR Code Generator’s blog says you can “typically reactivate these codes by renewing your subscription or upgrading your plan” and that “the physical code remains valid, so you do not need to replace your marketing materials.”
Other vendors have their own rules, so check their help pages or ask support directly. Useful questions: can a lapsed code be reactivated, how long is the short link reserved after cancellation, and can the code be moved to a different account if the original creator left your business.
If you can’t remember which service you used, the domain in the decoded URL tells you. Search for that domain and you’ll find the vendor.
Fix 2: restore the destination you control
If the code contains your own web address, you don’t need anyone’s permission. Put a page back at that exact path, or set up a redirect on your site from the old path to the new one. Every printed code starts working again immediately.
If the problem is an expired domain, renew it with your registrar as soon as possible. Expired domains can be bought by someone else, and then every code you printed sends people to a stranger’s site.
If you used a free link shortener inside the QR code and that short link was deleted, check whether the shortener lets you recreate it. Many don’t, and short links that were removed or flagged are usually gone for good.
Fix 3: reprint with a code that won’t do this again
If you can’t get the old address working, reprinting is the only option. Before you do, make a code that will survive the next change of plans.
Point it at an address you own and will keep, such as a page on your own domain or a profile page you control. That way, when your menu, offer, or contact details change, you edit the page, not the code. Avoid putting a free-trial dynamic code on anything expensive or long-lived, like signage, vehicle wraps, or product packaging, unless you’re prepared to pay for that plan for as long as the print exists.
Before you send anything to print, decode your new code and confirm the URL is the one you expect, then open it on a phone that isn’t logged in to your accounts. Keep a note of which service and which login created it, so the next person on your team can find it.
A simpler setup for business cards and profiles
If your QR code is meant to share who you are, your links, or your contact details, OneSol is one option. You can create a free QR code and digital business card that point at your own OneSol page, and you edit that page whenever something changes, so the printed code doesn’t need replacing. The free plan doesn’t expire, so there’s no trial ending that switches your code off.
Whatever tool you choose, the rule is the same: know exactly what address is inside your code, and make sure it’s one you control.