QR Code Expired: What It Means and What You Can Still Do
You scanned something and got told the QR code expired. Whether that is fixable depends entirely on which kind of expiry you have hit, and there are five of them with very different answers.
The code itself has not expired. It is a fixed pattern and it still holds exactly what it always held. Something at the other end stopped honouring it. Decode the code to see what is inside, because that content is often enough to solve the problem another way.
What a QR code expired message actually means
This is worth getting straight, because almost every frustrating conversation about expired QR codes comes from misunderstanding it.
A QR code is a pattern of squares that encodes a string of characters. That is all it is. It has no clock, no connection and no memory. Printed on a poster in 2019, it encodes the same characters today as it did then, and it will still encode them in twenty years.
So when an app reports a QR code expired, what has actually happened is that a server decided to stop honouring what the code points at. The pattern is innocent. The question is only ever which server, and whether you can do anything about it. An expired QR code is a permissions problem, not a damaged image.
The five kinds of expiry
1. A login code, which expired in under a minute
WhatsApp Web, WeChat, Telegram Desktop, Discord and most desktop sign-in screens show a code that dies within seconds. That is deliberate. The code is a temporary key to your account, and a key lying around for ten minutes would be a security problem.
Fix: click the refresh arrow on the code and scan the new one straight away. If it keeps expiring before you can scan it, the delay is usually your phone reaching the internet rather than the code itself, so check you are on a network that actually works.
2. A dynamic code whose free trial ended
This is the one that catches businesses out, and it is the most expensive. Free QR generators often hand you a dynamic code, meaning the pattern does not contain your link at all. It points at the generator's own server, which then redirects to you. Useful, until the trial ends or the plan lapses, at which point that redirect is switched off and every printed copy stops working at once.
Menus, flyers, business cards, signage and packaging all die together, because they were all pointing at the same redirect.
Fix: if it is your code, log back into whichever service made it and reactivate the plan, which brings every printed copy back instantly. If it is not your code, you cannot fix it and neither can any tool. Contact whoever printed it.
Reprinting? Use a static code instead, which carries the destination inside the pattern with no middleman. Static against dynamic QR codes covers the trade properly, and how to pick a generator that never expires covers what to look for.
3. A ticket, boarding pass or entry code
Event tickets, transport passes and venue entry codes are usually single-use, time-windowed, or both. Once it has been scanned at the gate, or once the window has closed, the issuer's system refuses it. Nothing is wrong with the code.
Fix: do not delete it. Decode it first. Most of these encode a booking reference or ticket number, and that reference still identifies your booking in the issuer's system long after the code stops scanning. Take it to their support and they can look you up.
4. A payment code
Payment request codes, including UPI, PayPal and most banking apps, carry a short validity window on purpose, because a payment instruction that stays live indefinitely is a fraud risk. They often expire in minutes.
Fix: ask for a fresh code. Never pay against a code that has expired and then reappeared from somewhere, and never accept one sent to you out of the blue. If money is involved, it is worth checking what the code actually contains before you scan it, which our safe QR scanner will show you without opening anything.
5. A two-factor setup code
The code an app shows when you add an account to Google Authenticator or a similar app is valid only for that setup session. Leave the page, take too long, or reload, and it stops working.
Fix: start the setup again from the account's security settings to get a fresh code. Do not reuse a screenshot of an old one, and do not leave screenshots of these lying around, since anyone holding that image can add your account to their own authenticator.
Read the code before you give up on it
Because expiry happens at the destination and not in the pattern, an expired code still decodes perfectly. That is genuinely useful, and almost nobody tries it.
Take a screenshot or a photo and open it in our QR code reader, which decodes from an image in your browser. What comes back tells you which of the five situations you are in:
- A link to a QR generator's domain, something like a short branded URL rather than the business you expected. That is a dynamic code and its redirect has been switched off. Situation two.
- A booking or ticket reference. Take it to the issuer. Situation three.
- A normal link to the real destination. Then it is not a QR problem at all, the page itself has gone, and you can try that address directly or look for it in a web archive.
- It will not decode. Then the image is damaged rather than expired, and our blurry QR code reader retries it with contrast and threshold processing.
Stopping it happening again
If you are printing anything, this is the whole lesson in one line: anything advertised as trackable, editable or dynamic depends on someone else's server staying up and your plan staying paid.
- For print runs, signage and packaging, use a static code pointing at a URL you control. If you might want to change the destination later, point it at a page on your own site and redirect from there. You keep the flexibility without handing anyone a switch.
- Before a big print run, scan the final artwork with two different phones. Our guide on testing a QR code before printing covers what else to check.
- Keep a record of what each code points at, so that if one does die you can reprint without reverse-engineering your own signage.
Questions people ask
Can an expired QR code be reactivated?
Only by whoever created it, and only if it was a dynamic code. A dynamic code points at a redirect the creator controls, so they can switch the destination back on at any time, usually by paying for the plan again. If you are not the creator, there is nothing you can do from your side, and no scanner or tool can restore it.
Do printed QR codes expire on their own?
No. A printed code is a fixed pattern that encodes the same characters forever, and paper does not know what year it is. If a printed code stops working, either the page it points at has gone, or it was a dynamic code whose redirect has been switched off. The ink is fine.
Why did my WhatsApp Web QR code expire in seconds?
That is deliberate and it is a security feature, not a fault. A login code is a short-lived key to your account, so it is valid for under a minute and then regenerates. Click the refresh arrow on the code and scan the new one promptly. If it keeps expiring before you can scan, the problem is usually that your phone is slow to reach the internet rather than anything to do with the code.
The code was on a ticket I paid for. Is my money gone?
Not necessarily, and do not throw the ticket away. Event and transport codes are often single-use or valid only inside a time window, and an expired one usually still has a readable booking reference behind it. Decode the code to recover that reference, then contact the issuer with it. They can look up the booking regardless of whether the code still scans.
How do I make a QR code that never expires?
Use a static code. A static code carries the destination inside the pattern itself, with no middleman who can switch it off, so it works for as long as the destination exists. The trade is that you cannot change where it points afterwards. Anything advertised as trackable, editable or dynamic depends on somebody else's server staying up and your plan staying paid.
Can I see what an expired code contained?
Usually yes, and this is the part most people miss. Expiry happens at the destination, not in the pattern, so the code still decodes perfectly. Reading it gives you the URL, the booking reference or whatever else was encoded, even when following that link leads nowhere. That recovered value is often enough to sort the problem out another way.
Wondering about this before it bites you rather than after? Do QR codes expire? covers which kinds carry a time limit and why, in more depth than the triage above.
