qrhue

QR code not scanning: how to find out why

Nine causes, from the most common (an expired redirect) to the rarest, with a two-minute test for each.

7 min read · updated 29 October 2026

First, find out whether the code reads at all

There are two different failures that both look like "it does not scan". Either the camera cannot read the pattern, or it reads it fine and the thing it points to is broken. Use the scan test on this site: upload a photo of the code or the original file. If the decoder shows the content, the pattern is fine and the problem is the destination (causes 1 and 2 below). If nothing decodes, the problem is physical (causes 3 to 9).

1. The redirect has expired

The most common reason a printed code stops working in 2026 is not the code. It is a dynamic code made with a free trial on a subscription generator: the code points at the provider’s short link, the trial ended, and the provider now shows an error page or an upsell. The pattern decodes perfectly; the link inside is theirs, not yours.

Tell-tale sign: the decoded text is a short link on a domain you do not own (qrco.de, qr.io, me-qr.com, qr-code-generator.com, scanova, bit.ly and so on). Fix: there is no fix for the printed copies short of paying that provider. Reprint with a static code, or with a lifetime editable code you can repoint without a subscription. The guide on expired codes walks through the options.

2. The destination is dead

The code decodes to your own link but the page is gone, moved or redirected to a login. Sites get redesigned, menus move from /menu.pdf to /our-menu, Instagram handles change. Fix: restore the old address with a redirect on your own site. If you cannot (it was a third-party link), reprint.

3. Too small for the distance

Rule of thumb: the code should be at least one tenth of the scanning distance. 30 cm away needs 3 cm, a poster read from 3 m needs 30 cm. Dense codes (vCards, long links, picture codes) need more. See the print size guide for the table.

4. Low contrast

Decoders binarise the image: every pixel becomes black or white. Pale dots, pastel backgrounds and soft gradients land near the threshold and flip randomly. Dark dots on a light background should differ in brightness by at least 40 percent; black on white is 100 percent. Metallic foil, glossy laminate and glass add glare that kills contrast where the light hits.

5. Inverted colours

Light dots on a dark background. The standard defines dark modules on a light background; many decoders try the inverse as a fallback, iPhones among them, but a lot of Android camera apps and older scanners do not. If the design must be inverted, accept that a share of Android users will fail, or put the code on a light plate.

6. No quiet zone

The clear margin around the code is part of the code. The standard asks for four modules; most phones manage with two. Zero (text or graphics touching the dots, a code cropped tight) confuses the finder-pattern search. Fix: regenerate with margin 2 or more and keep other artwork away.

7. Logo or picture too big

Error correction lets a code lose 7, 15, 25 or 30 percent of its data (levels L, M, Q, H) and still decode. A logo covering 30 percent of the area at level L is dead on arrival; the same logo at level H with a clean plate behind it scans fine. Fix: raise error correction to H, shrink the logo under about 22 percent of the width, use a plate. The logo page does this automatically and tests the result.

8. Blur and low resolution

A code saved as a small JPEG and scaled up, a screenshot of a screenshot, a 72 dpi PNG printed at A3: the module edges smear and neighbouring dots merge. Fix: export SVG or a PNG at 2048 px or more, and never let the printer upscale a tiny raster.

9. Too much data

A long tracking URL or a full vCard with address and notes produces a 45-module or denser grid. Each module gets tiny at normal print sizes and the code becomes fragile. Fix: shorten the link (your own domain and a short path), drop optional vCard fields, or print larger.

A checklist before you print

  • Decode the file with the scan test and read what is inside. Is it your link?

  • Run the five-condition scan check in the generator: aim for 5 of 5, accept 4.

  • Size: one tenth of the scanning distance, minimum 2 cm.

  • Dark on light, margin of 2 modules or more, matte stock.

  • Logo under 22 percent of the width, error correction H.

  • Print one, scan it with the oldest phone in the building, then print the rest.