QR Code Not Working? 12 Common Problems and How to Fix Them
Your QR code won't scan? Here are the 12 most common reasons QR codes fail and practical fixes for each — from print issues to broken URLs.
Why QR Codes Fail — The Root Causes
A QR code is just a pattern of black and white modules that a camera interprets into data. When a scan fails, the problem falls into one of three buckets: the physical code has a defect the camera cannot read, the environment is making the code unreadable at the moment of scanning, or the data encoded in the code is broken or unreachable. Fixing a broken QR code starts with figuring out which bucket the problem falls into.
Before assuming the code itself is bad, test it with two different phones and two different scanner apps. If a second device reads the code without issue, the problem is the original device, not the code. If multiple devices fail on the same code, the problem is almost always in the print or the encoded URL. This single five-minute test saves hours of guesswork.
Problems 1 to 4 — Scanning Environment
The first problem is poor lighting. QR scanners need visible contrast between the dark modules and the light background. In dim lighting, the camera auto-increases exposure and blurs the pattern. Fix: move to a brighter spot, or turn on the phone's flashlight. Printed codes under yellow restaurant lighting often fail while the same code scans instantly under daylight.
The second problem is reflective or glossy surfaces. Codes printed on laminated menus, glossy product packaging, or glass windows create glare that washes out the pattern. Fix: tilt the surface or the phone at a slight angle to break the reflection. For permanent placement, use matte finish paper or a matte laminate instead of gloss.
The third problem is wrong scanning distance. Phone cameras focus on a specific distance range. Holding the phone too close makes small codes fall outside the minimum focus distance, and the camera cannot sharpen the image. Holding it too far makes the code too small in the frame to be recognized. Fix: start at about 15 to 20 centimeters away and move slowly until the code appears sharp on screen.
The fourth problem is the scanning angle. QR codes are designed to be read from a perpendicular view, but extreme angles distort the pattern beyond what the alignment pattern can correct. Fix: face the code squarely, keeping the phone parallel to the surface. If the code is on a curved surface like a bottle or a coffee cup, rotate the object so the code flattens in the camera view.
Problems 5 to 8 — Print and Design Issues
The fifth problem is a missing quiet zone. The white border around a QR code is not decorative — it is required by the QR specification. Scanners use the blank margin to detect where the code begins. Codes printed flush against dark backgrounds or cropped to save space often fail. Fix: always leave a white margin of at least four modules' width around every edge. Our generator adds 8 percent padding automatically — do not crop it.
The sixth problem is low contrast. QR codes rely on sharp contrast between foreground and background. Light gray on white, dark blue on black, or any low-contrast pairing will defeat most scanners. The W3C recommends a contrast ratio of at least 4.5:1 between the two colors. Fix: stick with dark-on-light. Black on white is the most reliable pairing. If you need brand colors, keep the foreground darker than the background and test before printing.
The seventh problem is an oversized logo overlay. A logo placed in the center is fine up to about 20 to 25 percent of the code area, but larger overlays blot out too much of the data region. Fix: shrink the logo, or increase the error correction level to H (30 percent) so the code can survive the extra coverage. Our generator sets error correction to H automatically when you upload a logo.
The eighth problem is print size. A complex QR code — for example, a full vCard with name, phone, email, and address — has many modules, and each module needs to be large enough to register on a camera. The general rule is scanning distance divided by ten equals minimum code width. Fix: either shorten the data (use a short URL instead of a long one) or enlarge the code. For business cards, keep data short and print the code at least 2 by 2 centimeters.
Problems 9 to 12 — Technical and Data Issues
The ninth problem is a broken destination URL. The QR code scans fine, but the website it points to is offline, moved, or shows a 404. This is invisible until someone actually scans. Fix: test the URL in a browser before creating the QR code, then test the QR code itself weekly for important live placements. If you used a short URL service that has since shut down, the code is effectively dead and must be regenerated.
The tenth problem is an expired dynamic QR code. Dynamic codes route through a third-party redirect service. If you stop paying for the service or the provider goes out of business, the redirect breaks, and every printed code becomes a dead end. Fix: for permanent placements like product packaging, signage, or printed books, always use static QR codes. Static codes never expire because the data is encoded directly into the pattern.
The eleventh problem is phone camera software. Some older Android phones and budget devices have weaker QR scanning in the default camera. iPhones running iOS 11 or later and most Android phones from 2019 onward scan natively, but users on older hardware often need a dedicated scanning app. Fix: for widely-distributed campaigns, add a short text label like Scan with your camera or visit example.com so users with incompatible phones have a fallback.
The twelfth problem is conflicting apps or privacy restrictions. If the user has revoked camera permission for the scanning app, the scan will fail silently. Beta browsers or restricted enterprise phones sometimes block QR URL handling entirely. Fix: if the user reports the camera opening but not reading the code, ask them to check app permissions in their phone settings. Most of the time, re-granting camera access solves it instantly.
How to Test a QR Code Before Printing
Never send a QR code to print without a three-step test. First, scan it with an iPhone running the stock Camera app. Second, scan it with an Android phone using Google Lens or the stock Camera. Third, scan it from the exact distance and lighting conditions of the real-world placement. If the code is for a menu, test under restaurant lighting. If it is for a yard sign, test from a car parked at the curb.
Print a proof at the exact final size before committing to a large print run. Codes that scan perfectly on a monitor at 300 pixels sometimes fail when shrunk to 1.5 centimeters on glossy business card stock. The print proof catches size, contrast, and surface issues while there is still time to fix them. One bad batch of 5,000 flyers costs far more than a single test print.
For critical placements, give the proof to three people who did not design it. Fresh eyes catch issues the designer overlooks — a logo that is too big, a color that loses contrast after printing, a code that is positioned where the cashier's hand covers it. User testing a physical QR code for ten minutes saves weeks of reprint costs.
When to Generate a New Code Instead of Fixing
Sometimes the fastest fix is a fresh code. If the original QR code encodes a long URL, a typo in the URL, or outdated information, trying to repair it is impossible — static codes cannot be edited. Regenerating from scratch takes 30 seconds. Use our free URL QR generator, paste the corrected URL, download as SVG for print or PNG for digital, and replace the broken code everywhere it appears.
If you discover problems with a printed QR code after distribution, the practical fix depends on where it was printed. For digital placements (websites, emails, social posts), replace the image file and the old code is gone. For printed materials still in your possession, sticker over the old code with a new printed QR label. For materials already in customer hands, post an announcement on your website with the correct URL and consider a short URL redirect if the original destination can be recovered.
Prevention is always cheaper than remediation. Use the three-step test above, prefer static codes for print, keep the underlying URL short and stable, and add a simple fallback like a printed short URL near the QR code. That single text backup turns a dead QR code into a minor inconvenience instead of a lost lead.