A QR code that fails to scan has one of eight causes. Most of them are preventable before printing. All of them are diagnosable in under two minutes.
Cause 1 — Too Small for the Scanning Distance
The most common cause. The camera cannot resolve individual modules at the printed size from the expected scanning distance. Fix: apply the 10x rule — minimum code size equals one tenth of the scanning distance. Test scan before printing.
Cause 2 — Insufficient Contrast
A dark brown code on a dark navy background, a light grey code on a white background, or any color combination without sufficient luminance contrast fails to scan. Fix: maintain at minimum a 4:1 contrast ratio between module color and background color. Dark modules on light backgrounds are most reliable. Avoid color inversions — light modules on dark backgrounds scan less reliably than the reverse.
Cause 3 — Missing or Violated Quiet Zone
The white margin surrounding the code is required. Printing the code flush to a dark edge, overlapping with colored design elements, or placing it on a dark background without a white border causes scan failure. Fix: maintain at minimum four modules of white space on every side of the code.
Cause 4 — Damaged or Distorted Code
Physical damage — creases, tears, scuffs — that removes more than the error correction tolerance causes failure. A code with 7 percent error correction (level L) fails when more than 7 percent of modules are unreadable. Fix: use error correction level H for outdoor and high-wear placements. It tolerates 30 percent damage before failure.
Cause 5 — Glare on Glossy Surfaces
Direct light on a glossy finish creates specular reflection that obscures modules from the camera. Fix: use matte finish for outdoor and window placements. Laminate with a matte overlay if the base material is glossy.
Cause 6 — QR Code Printed on a Curved Surface
A flat QR code on a curved bottle, cylindrical container, or curved sign distorts the module grid enough to cause scan failure. Fix: either design the code for the curved surface using distortion compensation, or place the code on the flat label section of the packaging.
Cause 7 — Dynamic Code Destination Expired
Cause 8 — Camera App Not Recognizing the Code
Older Android versions do not have native QR reading in the camera app. Some older iPhones require the dedicated Code Scanner app rather than the camera. Fix: test with both iOS native camera and a dedicated QR scanning app to determine if the issue is the code or the scanner.
Testing Talking QR Codes Before Deployment
A talking QR code that fails to scan fails for the same eight reasons as any other code. Test scan the code from the expected position and distance before printing windshield stickers, yard sign riders, or table tent cards. Confirm the voice plays on both iOS and Android before committing to the print run.