# How to scan a damaged QR code

> Crop the image to just the code, flatten it square-on, boost the contrast, and cover damaged areas with clean white before scanning. Error correction can rebuild up to 30% of the data at level H, but nothing recovers a destroyed finder pattern: the three corner squares must survive.

Source: https://useqr.app/docs/scanning/how-to-scan-a-damaged-qr-code · Last reviewed 2026-08-21 · UseQR is free forever, no signup.

---

## What error correction can and cannot fix

Every QR code carries [Reed–Solomon error correction](/glossary/reed-solomon), which can
rebuild missing or misread data up to a level chosen when the code was made:

| Level | Recoverable data |
|---|---|
| L | ~7% |
| M | ~15% (the common default) |
| Q | ~25% |
| H | ~30% |

So a scratch across a level-M code eating 10% of the modules is routinely survivable.
But error correction protects the **data region only**. The three large
[finder patterns](/glossary/finder-pattern) in the corners are how the scanner locates
the code at all: destroy one and decoding never starts, regardless of how pristine the
rest is. The [quiet zone](/glossary/quiet-zone) matters the same way: damage that
clutters the margin can stop the code being found. The full mechanics are in
[error correction levels explained](/docs/spec/error-correction-levels-explained).

## The rescue sequence

Photograph the damaged code as square-on and evenly lit as you can, then work on the
image:

1. **Crop** to the code plus a small margin.
2. **Flatten**: use a perspective/skew tool to make the grid square. Crumpled paper
   responds surprisingly well to this step.
3. **Boost contrast** aggressively; convert to greyscale and push toward
   black-and-white. Fading is often just a contrast problem in disguise.
4. **Decode after every step** with an image-based [scanner](/scan) rather than a live
   camera, uploads let you iterate on the same frame.

## The white-patch trick

Counter-intuitive but effective: **cover damaged areas with clean white**: paint them
out in an editor, or physically stick plain white paper over the ruined region before
photographing.

The reasoning has two layers. Practically, a smudge or torn edge produces ambiguous grey
mess that skews the decoder's thresholding and can corrupt the reading of undamaged
neighbouring modules; a clean white patch confines the damage to the modules actually
lost. Theoretically, Reed–Solomon can correct **twice as many erasures** (unreadable
symbols at known positions) **as errors** (symbols read wrongly), and decoders that
flag suspect regions get closer to that erasure budget when the damage is crisp and
obvious rather than plausible-looking noise. Never try to redraw missing modules by
guesswork: a wrongly guessed module is an error, which costs double what an honest blank
does.

## When it is genuinely over

- **More than ~30% of the code is gone**, beyond even level H's budget.
- **A finder pattern corner is destroyed** and cannot be reconstructed by copying one of
  the surviving squares (a last-resort editor trick that sometimes works, since all
  three are identical 7×7 patterns).
- **The code was low error correction and dense**, long-URL codes at level L have
  almost no margin.

At that point the only recovery is context: the surviving text of a partially decoded
URL, or asking whoever printed it.

## Prevention costs less than rescue

Codes destined for weather, handling or abrasion should be generated at **level H**,
printed larger than the minimum, and produced on materials that fail gracefully: see
[outdoor durability](/docs/print/qr-codes-outdoors-durability) and the
[print checklist](/docs/print/qr-code-print-checklist). A code you
[verify decodes before printing](/validate) and print with margin survives most of what
the world does to it.

## FAQ

### Can a ripped QR code still be scanned?
Often, yes. Error correction rebuilds up to 7–30% of the data depending on the code's
level, provided the three corner finder patterns survive. Photograph it flat, boost the
contrast, and cover torn areas with clean white before decoding.

### How much of a QR code can be missing?
Up to roughly 30% at error correction level H, 15% at the common default M. Damage to
the corner finder patterns or the surrounding quiet zone is not covered and can make
even lightly damaged codes unreadable.

### Why cover QR code damage with white instead of redrawing it?
A wrong guess counts as an error, and Reed–Solomon corrects twice as many known blanks
(erasures) as wrong values. Clean white also stops smudged regions from skewing the
threshold used to read undamaged modules.

### Can a faded QR code be recovered?
Usually. Fading is mostly a contrast problem: photograph the code evenly lit, convert to
greyscale, and push the contrast hard toward black-and-white, then decode the image. If
thermal-paper print has faded to nothing, the data is gone.

## Try it

- https://useqr.app/scan
- https://useqr.app/validate
