Why is my QR code not scanning?
A QR code stops scanning for five measurable reasons: the quiet zone got cropped or filled in, the contrast is too low, the modules are too small, a finder pattern is damaged, or the damage exceeded what error correction can recover. Most of them are visible in the image itself once you know what to measure — and a code that fails for the first four can often be repaired without the original file.
This article walks through each cause with a check you can do yourself, in the same order a diagnostic tool would test them. None of it requires guessing: every cause below has a number attached.
The quiet zone got cropped or filled in
The quiet zone is the empty margin around the QR pattern — four modules of clear space on every side, and it is part of the specification, not decoration. Scanners use that blank border to find where the code begins and ends.
Two things kill it: someone crops the image too tightly, or a design puts text, a logo, or a busy background right up against the squares.
How to check: look at the edges. If any dark module touches the edge of the image, or sits closer than about four small squares to any text or graphic, the quiet zone is gone. On a print, a fold line or sticker across the border does the same damage.
Can it be fixed? Often yes. A repair tool can rebuild the pattern from the modules that survived — the quiet zone is added back around them, it doesn’t have to be recovered from anywhere.
The contrast is too low
QR codes need dark modules and light modules — the specification asks for a clear difference between them. Low-contrast codes fail in exactly the situations people print them for: a beige code on a cream background that reads fine on your monitor becomes unreadable under restaurant lighting, and a faded print or an overexposed photo washes the difference out entirely.
How to check: convert the image to greyscale and look at the darkest module versus the lightest. If they sit close together — both greyish — contrast is your problem. Blur is a contrast killer too: a blurry photo drags dark and light toward the same middle grey.
Can it be fixed? Usually. Sharpening and thresholding can push the modules back to clean black and white — this is one of the most recoverable failure modes, provided the underlying geometry survived.
A light code on a dark background is a different problem — see inverted QR codes.
The modules are too small
A QR code is a grid of small squares — modules — and a scanner has to resolve each one individually. When the whole code is printed too small, or the photo was taken from too far away, the modules merge into each other and there is literally not enough information in the pixels to read.
How to check: zoom in until you can see individual squares. If you can’t find a clean edge between two adjacent modules in the photo, the code is too small in that image. For prints, the practical floor is about 2 × 2 cm for a code scanned at arm’s length, and wider the further away the scanner will be — the rule of thumb is width = scanning distance ÷ 10.
Can it be fixed? A photo of a too-small code usually can’t be rescued — the information isn’t in the pixels. But a print that is merely small (not faded or creased) doesn’t need repairing, it needs reprinting larger: check the right print size before you reprint it.
A finder pattern is damaged
The finder patterns are the three big squares in the corners. A scanner locks onto a code by finding those three and measuring the exact 1:1:3:1:1 ratio of dark and light runs inside them. They are the handshake — no finders, no scan, no matter how perfect the data modules are.
This is the classic physical-damage failure: the box got creased exactly across a corner, a sticker sits on one square, or a screenshot clipped one corner off.
How to check: count the corners. Three clean squares with a white border inside a black border, each surrounded by clear space? If one is torn, covered, or missing, that’s the cause.
Can it be fixed? Sometimes. Two intact finder patterns can be enough for a repair tool to reconstruct the grid and read the rest with error correction — a damaged third corner is exactly the kind of loss the code’s own math can absorb, as long as it hasn’t also lost too much data elsewhere.
The damage exceeded the error correction
Every QR code carries error correction — redundant data woven through the pattern so a scanner can reconstruct the message even when part of it is unreadable. How much redundancy depends on the level the code was generated with:
| Level | Can recover roughly |
|---|---|
| L | 7% of the code |
| M | 15% |
| Q | 25% |
| H | 30% |
A code generated at level L (common with free generators, because it produces the smallest pattern) has almost no margin. The same coffee stain that a level-H code would shrug off kills it outright.
How to check: you can’t see this one — it’s the outcome, not a visible feature. If the four causes above look mild but the code still won’t scan, the code was likely generated with little redundancy and what damage exists went over its limit.
Can it be fixed? If any decoder can still read enough modules, the content is recoverable and the code can be rebuilt at a higher error-correction level than it started with.
How to tell which one it is
You don’t have to eyeball all five. A local check reads the image, locates the pattern, and measures the quiet zone, the contrast, and the module size for you — then tells you which check failed and by how much: check a QR code here. Or start simpler: read the code from the image — if a plain decode fails but the image looks fine, that narrows it to physical damage or correction limits.
When a broken QR code can still be recovered
If the cause is quiet zone, contrast, or a damaged corner, the geometry underneath is often intact — and that’s all a repair tool needs. Repair a damaged QR code runs a series of image-processing passes in your browser, verifies what it recovers against the code’s own error correction, and rebuilds a clean, scannable copy of the same content. Nothing is uploaded — your image never leaves your device.
The honest limit: if the modules were never captured in the pixels (a code too small in the photo, or a sticker covering a third of the pattern), no tool can invent data that isn’t there. Everything short of that is worth trying.
Frequently asked questions
Can a damaged QR code still be scanned?
Often, yes. A QR code carries built-in error correction covering 7–30% of the pattern depending on its level, so creases, fades, and clipped margins frequently stay within what a scanner — or a repair tool — can recover.
How do I fix a QR code that won’t scan?
First identify the cause: quiet zone, contrast, module size, a damaged finder pattern, or exhausted error correction. The first three are about how the code was captured or printed; the last two are about the code itself. If the content matters, a repair tool can recover it and rebuild a clean code — repair a QR code here.
Does print size affect scanning?
Yes. The practical floor is about 2 × 2 cm for a hand-held scan, and the rule of thumb is width = scanning distance ÷ 10 — a code on a poster scanned from two metres should be about 20 cm wide. See the print size math.