Why QR codes fail to scan and how to fix it

A practical guide to QR code contrast, quiet zones, size, logos, error correction, printing, glare and destination failures.Written by Qraffe · Updated September 15, 2026 · 5 min read

The quick preflight check

A QR code can fail because the pattern is difficult for a camera to decode, because the printed or displayed code is damaged or because the destination works poorly after the scan. Fix the code first then test the final physical or on-screen version where people will use it.

  1. Use strong contrast between the modules and background.
  2. Keep a clear quiet zone around every edge.
  3. Make the code large enough for the scanning distance.
  4. Keep logos modest and use higher error correction when needed.
  5. Test the final version with more than one device.

Contrast is too weak

Cameras need a clear difference between dark modules and their background. Pale gray modules, bright colors on a light background, reflective paper and dark backgrounds can all make detection harder.

Use a dark foreground on a light, non-reflective background whenever possible. Check the finished code because paper, screens, lighting and nearby colors change the result.

The quiet zone is missing

The blank margin around a QR code helps a camera distinguish it from nearby text, borders, images and packaging. Do not crop it away or place a frame, label or edge directly against the modules.

The code is too small for the distance

A code on a poster, menu, window or wall must be larger than one on a phone screen held close to a camera. Dense payloads also create more modules, so the same physical size gives each module less room.

Test at the farthest realistic scanning distance, at the viewing angle people will use and under the expected lighting.

The logo covers too much

A logo removes modules from the code. Error correction can recover from some damage but cannot compensate for an oversized logo, poor contrast or a crowded payload indefinitely. Keep logos centered, simple and conservative in size.

The payload is too dense

Long URLs, contact cards, messages and Wi-Fi credentials produce more modules than short content. A dense code needs more physical space and more careful printing.

Printing, glare or damage changes the code

Blurred exports, low-quality compression, smudging, folds, glare, transparent backgrounds, textured paper and curved surfaces can interfere with decoding. Print a proof at its final size and test it under normal and difficult lighting.

The scan works but the destination fails

Sometimes the camera reads the code correctly and the problem is the destination: a deleted page, broken redirect, offline file, blocked Wi-Fi network, invalid phone number or a page that does not work on mobile.

Test both parts separately: confirm the QR payload decodes then open the destination on the devices and network conditions your audience will use.

What Qraffe checks

Qraffe checks common risk factors including contrast, quiet zone, payload density, logo coverage, error correction and local decode success. These checks are guidance, not a universal guarantee: final materials still need real-world testing.