Troubleshooting
Dynamic QR code not working? Why the redirect stopped, and how to fix it
By Sam Moreton · updated 1 July 2026
When a dynamic QR code stops working, the code on the wall is usually fine — the problem is the redirect behind it. A dynamic code doesn’t carry your link; it carries a short URL that bounces through a provider’s server, and that server has to be up and the code still active for the scan to land anywhere. This guide walks the five causes that break that chain, from the most common (a lapsed trial or subscription the provider quietly disabled) to the fiddly ones, with fixes for each — and how to make sure it never happens to a code you can’t reprint.
7 min read · Updated 1 July 2026
First, confirm it’s the redirect, not the scan
There are two very different failures that feel the same in the moment. If the phone camera won’t even recognise the code — no link banner appears — that’s a scanning fault (size, contrast, glare, damage), and our guide to a QR code that won’t scan covers it. If the code scans, a link appears, and then the page fails to load or goes somewhere wrong, that’s a redirect fault — which is what this guide is about. Decode the code and read the short URL it contains: if it points at a provider’s short domain rather than your real site, you have a dynamic code, and the fix is on the provider’s side, not the print.
Why dynamic codes break in the first place
A static QR code has your destination baked straight into the pattern — there is no server in the loop, so there is nothing to switch off. A dynamic code is different: the pattern encodes a short link (for OpenQR, an oqr.to/… URL), and every scan asks the provider’s server “where should this go?” before forwarding on. That indirection is what lets you edit the destination after printing — but it also means the code depends on two things staying true: the provider’s redirect service being online, and your specific code still being active on your account. Break either and the scan lands nowhere.
1. The provider lapsed your trial or subscription
This is by far the most common reason a printed dynamic code dies, and it catches people out because nothing changed on their end. Many QR providers give you dynamic codes on a free trial or a paid plan, and when that trial ends or a payment fails, they disable the redirect — the code you already printed simply stops resolving until you pay (or pay again). The code isn’t broken; it’s being held. Sign in to the provider account behind the code and check the plan and billing status first.
Trial-locked codes are the usual culprit
If a code that worked for weeks suddenly dead-ends, check the provider’s billing before anything else. A lapsed free trial or a failed payment lets many providers switch off a redirect you’ve already printed — the code becomes leverage to make you upgrade. OpenQR does not expire your dynamic codes on you; the free tier keeps up to 10 dynamic codes live, and Pro lifts that.
2. The code or account was deleted
If the specific code was removed from the provider’s dashboard, or the whole account was closed or went dormant, the short link has nothing to resolve to and typically returns a “not found” or a generic provider page. This also happens after a company switches tools, or a colleague who owned the account left. If you still have access, check whether the code is merely paused or actually gone — a paused code can often be re-enabled; a deleted one usually has to be recreated (and, if the short link changed, reprinted).
3. The destination moved, 404s, or has a typo
Sometimes the redirect works perfectly and hands off exactly as intended — to a page that no longer exists. The target URL may have been mistyped when the code was set up, the page may have been moved or unpublished, or the whole site may have changed structure. The tell-tale sign is that the scan does jump to your domain but then shows a 404 or the wrong page. If you control the dynamic code, this is the easy case: just edit the code’s destination to the correct, live URL — no reprint needed.
4. http-vs-https or mixed content
A destination set to http:// instead of https:// can be blocked or warned against by modern phone browsers, so the scan appears to “fail” even though the redirect fired. The same goes for a secure short link forwarding to an insecure page. Always point the code at the https:// version of the destination, and open that URL in a browser yourself to confirm it loads without a security warning.
5. The short-link domain is down
Every dynamic code is only as reliable as the short domain in the middle. If the provider’s redirect service has an outage — or, worse, the provider has shut down and let the domain lapse — every code routed through it stops at once, and there is nothing you can do from your side but wait or move to another tool. This is the structural risk of dynamic codes, and the reason a code you truly can’t afford to lose deserves a second look (more on that below).
| Symptom | Likely cause | Fix |
|---|---|---|
| Scans, then dead-ends after weeks working | Trial / subscription lapsed | Check provider billing; re-activate or switch tools |
| “Not found” or a generic provider page | Code or account deleted | Re-enable if paused; recreate if gone |
| Jumps to your site but shows a 404 | Destination moved or mistyped | Edit the code to the correct live URL |
| Browser warns or blocks the page | http instead of https / mixed content | Re-point to the https:// destination |
| Every code from one provider fails at once | Short-link domain down | Wait out the outage or migrate off it |
| Goes to an old or wrong page | Stale destination | Edit the destination if you still own the code |
The fix, in order
- Decode the code and read the short URL — confirm it’s a provider redirect, not your real link.
- Sign in to the provider account and check the plan and billing status first.
- Confirm the specific code still exists and is active, not paused or deleted.
- Open the destination URL directly in a browser — does it load, on https, without a 404?
- If you still control the code, edit its destination to the correct, live https:// URL.
- If the whole provider is down or gone, plan a migration — and reprint only if the short link itself has to change.
For the difference between the two code types and when each is the right call, see static vs dynamic QR codes, and our guide to dynamic QR codes for how the redirect actually works.
How to stop it happening again
Most “my dynamic QR code stopped working” stories aren’t about broken technology — they’re about a provider using the redirect as a lever. Two things protect you. First, use a provider that won’t hold a printed code hostage: OpenQR’s dynamic codes are editable and don’t expire on us — the free tier keeps up to 10 dynamic codes live with 7 days of scan analytics, and Pro lifts those limits. Second, for a code you physically cannot reprint — engraved on a product, cast into signage, printed across a run of thousands — consider a static code instead. A static code encodes the link directly, has no redirect to lapse, no server to go down, and no billing to fail. You trade editability for permanence, and for the codes that matter most that’s often the right trade. Our explainer on whether QR codes expire unpacks exactly what does and doesn’t.
Make a QR code that won’t be held hostageFree static codes that never expire, plus editable dynamic codes that we don’t switch off on you.