QR Code Not Working? How to Find and Fix the Cause
By the CirculateQR team · Updated · 8 min read
Short answer
A QR code that isn’t working has one of two kinds of problem. If phones can’t read it at all, the print is at fault: it’s too small, too pale, inverted, cropped, damaged or too dense. If phones read it but open an error, an “inactive” page or the wrong site, the problem is where it points: a dynamic code whose trial or subscription ended, a deleted page, a lapsed domain or a dead link shortener. Read the code’s contents with a scanner that shows them, and the cause is usually obvious.
On this page
Key facts
- There are two kinds of failure: the phone can’t read the code (a print or design problem), or it reads the code and the link fails (a destination or provider problem).
- When a code that used to work suddenly stops, the usual cause is a dynamic code whose free trial or subscription ended at the generator that made it.
- A dynamic code contains a short link on the generator’s domain rather than your own web address, which you can see by reading the code’s contents.
- Only the provider that made a dynamic code can switch it back on. If that isn’t possible, the code has to be replaced.
- Static codes never expire. They fail only when the page they point to changes or the print can’t be read.
- Print problems are fixed by reprinting: dark on light, big enough for the scanning distance, with a blank border of 4 modules.
How do you tell what’s wrong with a QR code?
Point a phone camera at the code and watch what happens. Either nothing happens, or the phone shows a link or a notification. That splits every problem into two groups:
| What happens | Likely cause | Where to look |
|---|---|---|
| Nothing: the camera doesn’t react | The phone can’t read the pattern | Print and design problems |
| A page says the code is inactive, paused or expired, or asks the owner to upgrade | A dynamic code the provider has stopped forwarding | Codes that stopped working |
| A “page not found” error, a parked domain or ads | The page or domain behind the code is gone | Codes that stopped working |
| Some phones scan it and others don’t | A borderline print, or a phone setting | Problems on some phones |
To see exactly what a code contains without opening it, take a photo or screenshot and drop it into the free QR code scanner. It reads the code in your browser and shows the full link. A short link on a QR company’s domain means the code is dynamic and depends on that company; your own web address means it’s static.
Why did a QR code that used to work stop working?
The pattern on paper never changes, so a code that scanned last month still decodes to the same text today. What changes is what that text points to:
| Cause | What people see | Fix |
|---|---|---|
| The free trial of a dynamic code ended | An inactive or upgrade page on the generator’s site | Sign in to that generator and reactivate the code, or replace it |
| A subscription was canceled or a card payment failed | The same, sometimes after a grace period | Restore the plan or the payment details |
| A scan limit was reached | An error or upgrade page | Raise the limit with the provider, or replace the code |
| The code or account was deleted | An error on the provider’s site | Replace the code |
| The page was moved or deleted | “Page not found” on your website | Restore the page, or redirect the old address to the new one |
| The domain expired | A parked page, ads or someone else’s site | Renew the domain if you still can |
| A link shortener shut down or deleted the link | An error from the shortener | Replace the code |
| A shared file link changed or expired | A “no access” or “file not found” page | Share the file again with access for anyone with the link |
A few of these catch people out more than others:
- “Free” dynamic codes. Many generators make a dynamic code by default, without saying so, and stop forwarding it when a trial ends. The code looked free when it was printed. See do QR codes expire?
- Link shorteners. A code that contains a short link depends on the shortener. Google retired its goo.gl shortener, and links with no recent clicks stopped working after August 25, 2025.
- Shared files. Replacing a file on a cloud drive, changing its sharing setting, or using a link that expires (iCloud photo links last 30 days) breaks the code.
- Codes that store details directly. A WiFi code stores the network name and password, so it stops working when the password changes. A meeting code stops when the meeting link does: Zoom expires the links of one-off meetings 30 days after the scheduled date.
Can you fix a QR code without reprinting it?
It depends on what the code contains, which is why reading its contents comes first:
- A link to your own website: yes. Restore the page, or set up a redirect from the old address to the new one, and every printed code works again.
- A dynamic code from a provider: only through that provider. Sign in and reactivate the code, which usually means restoring a plan. The printed code works again on the next scan. If the provider has closed or deleted the code, nobody else can take over its short link.
- A link shortener you don’t control: no. Replace the code.
- WiFi, contact details or text stored in the code: no. The details are in the pattern itself, so a change needs a new code.
When you replace a code, cover the old one completely so people don’t scan a dead link, and choose what the new one contains on purpose. A static code that points to a page on your own website never depends on a QR company: if the page moves, you add a redirect. A dynamic code is worth it when you need to change the destination often or count scans, as long as you know how long it stays live on your plan.
Why won’t a QR code scan at all?
If the camera doesn’t react, the phone can’t find or read the pattern. Check these, roughly in order of how often they’re the cause:
- Too small for the distance. Make the code about a tenth of the distance people scan from, and at least 2 cm (0.8 in) wide for something held in the hand. The size calculator works it out, and the size guide explains why.
- Not enough contrast. Codes need dark squares on a light background. Pale brand colors, gray on gray and light-on-dark codes fail on many phones.
- No blank border. Phones need a quiet zone of about 4 modules (the code’s small squares) around the code. Text, borders or a busy background right up against it stops it scanning.
- Too much data. A long link makes a dense code with tiny squares. Use a shorter link, or print the code bigger.
- A logo or styling that hides too much. A logo has to stay within what error correction can recover, and the three corner squares must stay clear.
- A blurry or stretched image. A small PNG enlarged for print goes soft at the edges. Print from an SVG, which stays sharp at any size, and never stretch the code out of square.
- The surface. Glare from glossy laminate, tight curves on bottles and cups, and folds through the code all break the pattern.
- Damage. Scratches, fading and stickers over part of the code eventually beat error correction. Reprint worn codes.
Why does a QR code work on some phones but not others?
- The print is borderline. Newer phones with better cameras read small, low-contrast or damaged codes that older phones can’t. Fix the print rather than relying on the best phone.
- The camera’s QR reading is turned off. On an iPhone, check Settings › Camera › Scan QR Codes. Some older Android phones don’t read QR codes in the camera app; Google Lens does.
- The content isn’t supported everywhere. WiFi, contact and calendar codes are read slightly differently by different phones. Test those on both an iPhone and an Android phone.
- A work phone blocks the link. Company-managed phones and some security apps warn about or block unfamiliar short links.
How do you stop QR codes from breaking in future?
- Know what you’re printing. Read the code’s contents before you print. If it’s a short link on a generator’s domain, find out how long it stays live on your plan.
- Test a printed proof with an iPhone and an Android phone, at the real size, distance and lighting.
- Keep destinations alive. Don’t delete pages that are in print; redirect them. Renew domains that appear on printed material.
- Avoid links you don’t control, such as third-party shorteners and expiring file links.
- Keep a list of where each code is printed, so you know what to check when you change your website, plan or provider.
Frequently asked questions
Why is my QR code not scanning?
If the camera doesn’t react at all, the phone can’t read the pattern. The usual causes are a code printed too small for the distance, low contrast or light-on-dark colors, no blank border around the code, too much data, a logo that covers too much, a blurry enlarged image, glare or a curved surface. Reprint it dark on light, larger, with a 4-module border.
Why does my QR code say it is inactive or expired?
The code is dynamic: it contains a short link from the generator that made it, and that generator has stopped forwarding it, usually because a free trial ended or a subscription lapsed. Sign in to that generator to reactivate it. If you can’t, the code has to be replaced.
Can a QR code expire?
Not by itself: nothing in the QR code format stores a date. Static codes keep decoding the same way forever. Dynamic codes stop working when the provider stops forwarding their short link, and any code stops working when the page it points to is deleted.
How can I see what a QR code links to without opening it?
Use a scanner that shows the contents before opening anything. CirculateQR’s free QR code scanner reads a photo, screenshot or camera image in your browser and shows the full link, without uploading the image.
Can I fix a QR code without reprinting it?
Yes if it links to your own website (restore or redirect the page) or if it’s a dynamic code you can reactivate with its provider. No if it stores WiFi or contact details directly, uses a shortener you don’t control, or comes from a provider that has deleted it or closed.
Why does my QR code work on iPhone but not on Android?
Usually the print is borderline and one phone’s camera copes better. Some older Android camera apps also don’t read QR codes; Google Lens does. Reprint the code larger and with stronger contrast, then test on both.
Last updated . Written by the CirculateQR team. Spotted something wrong or out of date? Email support@circulateqr.com.
Make a replacement that won’t expire
Static QR codes from CirculateQR are free, need no sign-up and never expire. Check the contents of any code with the free scanner before you print.
Related guides
- Do QR Codes Expire? Static vs Dynamic, ExplainedDo QR codes expire?
- QR Code Size Guide for Print: Minimum Size and DistanceWhat size should a printed QR code be?
- QR Code Error Correction Levels L, M, Q and H ExplainedWhat do QR code error correction levels mean, and which should I use?
- Dynamic vs Static QR Codes: What Is the Difference?What is a dynamic QR code, and how is it different from a static one?