QR Code Error Correction Explained: Why Your Logo QR Code Still Scans
Technologyβ€’12 min read

QR Code Error Correction Explained: Why Your Logo QR Code Still Scans

QQR-Verse Team
March 16, 2026
12 min read

You have seen it happen. A QR code on a coffee sleeve has a logo printed right in the middle. Half the corner square is scratched off. The ink has faded from a year of sunlight. And yet, your phone camera locks on in under a second. How?

The answer is error correction - a mathematical redundancy system baked into every QR code that allows scanners to reconstruct missing or corrupted data. Without it, adding a logo to a QR code would be guaranteed to break it. With it, you can cover nearly a third of the code and still get a perfect read.

This guide explains how QR code error correction works, what the four levels mean in practice, and how to choose the right level for your use case - whether you are printing business cards, designing branded codes with logos, or generating AI art QR codes.

How QR Codes Store Data

Before diving into error correction, it helps to understand what a QR code physically is.

A QR code is a two-dimensional matrix of black and white squares called modules. Each module represents a single bit. A small QR code (Version 1, 21x21 modules) can encode around 17 characters. A large one (Version 40, 177x177 modules) can encode several thousand characters.

The modules are not all data. A QR code contains several structural regions:

  • Finder patterns - The three large squares in the corners. Scanners use these to detect the code's position, size, and orientation.
  • Timing patterns - Alternating black-and-white strips that help the scanner calculate module size.
  • Alignment patterns - Additional squares in larger codes that correct for image distortion.
  • Format information - Metadata about the error correction level and masking pattern used.
  • Data and error correction modules - The actual payload, spread across the remaining area.

The data modules do not just store your URL or text directly. They encode it in one of four encoding modes (numeric, alphanumeric, byte, or kanji), then run it through an error correction algorithm that generates additional redundant data. Both the original data and the redundancy are interleaved and stored together.

This interleaving is important: it means damage is unlikely to affect both the original data and its redundancy simultaneously, giving the scanner the best possible chance of recovery.

What Is Error Correction?

Error correction in QR codes uses Reed-Solomon codes, developed by mathematicians Irving Reed and Gustave Solomon in 1960. Reed-Solomon was originally designed for communication systems where data has to survive noisy transmission channels - think deep space probes and satellite links. QR code designers adopted it for a different but analogous challenge: physical media that gets scratched, smudged, and printed imperfectly.

i

Reed-Solomon codes are also used on CDs, DVDs, and Blu-ray discs to recover data from scratched surfaces. The math that lets your scratched CD play cleanly is the same math that lets a damaged QR code scan correctly.

At a high level, Reed-Solomon works by treating the data as polynomial coefficients over a finite mathematical field (called a Galois field). The encoder generates additional "check symbols" - extra data points that lie on the same polynomial curve. If some points are lost or corrupted, the decoder can use the remaining points and check symbols to solve for the missing values and reconstruct the original data.

In practical terms: for every block of data modules in a QR code, there is a corresponding block of error correction modules. The scanner reads both, detects discrepancies, and uses the redundancy to fill in what it cannot directly read.

The ratio of error correction modules to total modules determines how much damage the code can survive - which is where the four error correction levels come in.

The 4 Error Correction Levels

The QR code standard (ISO/IEC 18004) defines four error correction levels, each offering a different trade-off between resilience and data density.

LevelNameData RecoveryTypical Use Case
LLow7%Digital display, clean environments
MMedium15%General purpose, standard printing
QQuartile25%Outdoor printing, light branding
HHigh30%Logos, AI art, harsh environments

The "data recovery" percentage means the fraction of the code's data region that can be damaged, missing, or unreadable while still allowing a full decode. A Level H code can have 30% of its data modules destroyed and still scan successfully.

There is a cost: higher error correction requires more modules to store the redundancy data. For the same content, a Level H code needs significantly more total modules than a Level L code. That means either a larger physical code or a denser, harder-to-scan grid. In practice, most QR code generators handle this automatically by moving to a higher QR version (larger grid) when you increase the error correction level.

i

When comparing QR codes at different error correction levels that encode the same URL, the Level H code will typically be 40 to 65% larger in terms of module count. On a business card at 2.5 cm, this is imperceptible. On a small label at 1.5 cm, the denser Level H code may be harder for low-resolution cameras to scan than a cleaner Level M code.

How levels affect code size

To put numbers on it: a short URL like qr-verse.com/c/abc123 encoded at each level produces QR codes of different versions (and therefore different module counts):

  • Level L - Version 2 (25x25 modules)
  • Level M - Version 3 (29x29 modules)
  • Level Q - Version 3 or 4 (29x29 to 33x33)
  • Level H - Version 4 or 5 (33x33 to 37x37)

These numbers will vary based on the exact content, but the pattern holds: higher error correction means a larger code. This is not a problem for most uses, but it is worth knowing when you are working with size constraints.

Why This Matters for Logo QR Codes

Adding a logo to a QR code is perhaps the most common reason people encounter error correction in practice - even if they never think about it explicitly.

When you place a logo in the center of a QR code, you are physically covering modules. Those modules are unreadable to the scanner. The question is: does the code have enough redundancy to reconstruct what was covered?

i

A logo placed in the center of a QR code typically covers 10 to 20% of the total module area, depending on logo size. Level H (30% recovery) provides sufficient headroom above the coverage to guarantee a reliable read. Level M (15% recovery) may work if the logo is very small, but offers no margin for additional damage like scratches or fading.

This is why any serious QR code generator - including QR-Verse - automatically applies Level H when you add a logo. Using a lower level is technically possible but risky: a small logo at Level M might scan in a lab, but fail in the real world where the printed surface picks up a fingerprint, the ink fades slightly at the edges, or the camera reads at an angle.

A practical rule: if any part of your QR code is intentionally covered or visually modified, use Level H. If your QR code is a clean, unmodified black-and-white pattern, Level M is almost always sufficient.

Logo placement and finder patterns

One important constraint that error correction cannot help with: the three finder patterns (the large squares in the corners) are critical structural elements that the scanner needs to locate and orient the code. No amount of error correction compensates for covering a finder pattern.

If your logo is large enough that it overlaps with a finder pattern, the code will not scan regardless of error correction level. Keep logos centered and sized so they stay away from the finder patterns and the timing strips connecting them. As a general guideline, a centered logo should not exceed 30% of the total code width, and definitely should not touch the corners.

Error Correction in Practice

Real-world QR codes encounter a wide range of degradation scenarios. Here is how error correction handles each:

Scratched print

A QR code on a product label that gets scratched at the checkout conveyor loses some modules completely. As long as the damage is spread across the code rather than concentrated on the finder patterns, Reed-Solomon recovery handles it cleanly. This is the scenario error correction was originally optimized for.

Partial cover

A sticker placed over part of a QR code, a logo in the center, or a watermark overlaid on the image all block modules from being read. Same effect as scratching from the scanner's perspective - missing modules. Level H is the right choice when any cover is planned, because the cover is predictable and permanent.

Faded ink

Over time, outdoor QR codes fade. The contrast between dark and light modules decreases. When contrast drops below the scanner's detection threshold, modules are misread rather than missing. Reed-Solomon handles both missing and misread modules, though the two consume redundancy capacity at different rates. For outdoor longevity, Level Q or H is recommended.

Bent surface

A QR code printed on a rounded surface - a coffee cup, a bottle, a packaging roll - presents a distorted image to the camera. Alignment patterns in larger QR codes help the scanner compensate for this distortion, and error correction cleans up any modules that were misread due to the warp. For small codes on highly curved surfaces, consider increasing the physical size so modules remain distinguishable.

Dirty surface

Mud, grease, fingerprints, and other surface contamination obscure random modules across the code. This is exactly the scatter-damage pattern that Reed-Solomon handles best. A Level M or Q code survives typical surface contamination without issue.

AI QR Art and Error Correction

AI QR art represents the most demanding application of error correction in modern QR code generation. When a ControlNet model blends an artistic style into a QR code, it deliberately perturbs module values to create visual coherence with the artwork. Some modules become slightly lighter or darker than the strict black-white threshold. Others are transformed enough that a scanner may read them as the wrong value.

The artistic transformation acts as a form of distributed, stylized damage. Unlike a physical scratch that completely destroys modules, AI art subtly corrupts them - which actually places higher demands on the error correction system, because corrupted modules consume more recovery capacity than simply missing ones.

i

QR-Verse's AI art pipeline uses Level H error correction exclusively and enforces a 4-stage quality gate on every generated image: deterministic scan at three resolutions (256px, 384px, 512px), RAG-guided parameter selection from 71,000+ generation records, local Qwen3-VL vision model evaluation, and override rules that reject any image where the deterministic scan fails. This produces a 98.9% scan success rate across all generated art.

Standard ControlNet implementations without a quality gate often produce AI art QR codes that look spectacular but fail to scan. The visual quality and the scanning reliability are in direct tension: more aggressive artistic transformation produces better-looking art but pushes modules further from their correct values. Error correction Level H provides the headroom to push this transformation further while maintaining scannability - but only when the generation parameters (ControlNet weight, guidance scale, number of steps) are tuned correctly.

The 98.9% scan rate QR-Verse achieves is not a property of error correction alone. It is the result of error correction combined with empirically calibrated generation parameters and a mandatory scan verification before any image is delivered.

Choosing the Right Error Correction Level

Use this decision guide to pick the right level for your use case:

Use CaseRecommended LevelReason
Digital display only (screen, PDF, email)LNo physical damage risk, smaller code fits better
Standard print without logoMHandles typical print quality variation and minor wear
Business card or quality printMClean environment, high print resolution
Outdoor signage or bannerQUV fading, weather, potential surface damage
QR code with logoHLogo covers 10-20% of modules
Curved or textured surfaceQ or HDistortion increases effective error rate
AI art QR codeHArtistic transformation distributes error across modules
Industrial labeling, harsh environmentHMaximum resilience for worst-case conditions

When in doubt, the performance cost of going to Level H is small (a slightly larger code) and the resilience benefit is significant. For print applications, defaulting to Level H costs you nothing noticeable in scan performance and eliminates a class of real-world failure modes.

Common Misconceptions

"Higher error correction is always better"

Not always. For digital-only QR codes displayed on screens, Level L produces a smaller, cleaner code. More modules mean the code is larger or denser. On very small prints (under 1.5 cm), a Level H code may actually be harder to scan than a Level M code of the same physical size, because the higher module density taxes low-resolution cameras more than the resilience benefit helps.

The right level depends on your deployment environment. Higher is not universally better - it is better when you have specific resilience requirements.

"Error correction protects the whole code"

Error correction applies to the data region. The three finder patterns (corner squares) are structural elements used to locate and decode the code in the first place. If a finder pattern is significantly damaged or obscured, the scanner cannot orient the code, and decoding cannot begin. Error correction never gets a chance to run.

This is why logo placement matters so much. A logo that drifts into a corner square will break the code completely, regardless of the error correction level.

"Any damage is fine as long as it's under the limit"

Error correction levels state the maximum percentage of the data region that can be damaged. But this assumes the damage is randomly distributed across the code. In practice, concentrated damage in a small area is worse than the same amount of damage spread evenly, because it can exhaust the local block's error correction capacity even if the global percentage is within the limit.

This is also why the interleaving of data and error correction blocks across the code matters - it spreads recovery capacity more evenly against the likely damage patterns QR codes face.

"Static and dynamic QR codes handle error correction differently"

Error correction is a property of the QR code format itself, not of whether the code is static or dynamic. Both dynamic QR codes and static ones use the same Reed-Solomon algorithm at the same four levels. The practical difference is that dynamic QR codes encode a short redirect URL (much less data than the final destination), which allows them to use a higher error correction level at a given physical size compared to a static code that encodes the full URL directly.

FAQ

What is QR code error correction?

QR code error correction is a built-in feature that allows a QR code to remain scannable even when part of it is damaged, dirty, or covered. It uses Reed-Solomon error correction algorithms to add redundant data that can reconstruct missing information.

What are the four error correction levels?

Level L recovers 7% of data, Level M recovers 15%, Level Q recovers 25%, and Level H recovers up to 30%. Higher levels add more redundancy but require a larger QR code to store the same amount of data.

Which error correction level should I use for a logo QR code?

Use Level H (30% recovery) when adding a logo. The logo typically covers 10-20% of the QR code area, so Level H provides enough redundancy to compensate. QR-Verse automatically applies Level H when you add a logo.

Does higher error correction make QR codes bigger?

Yes. Higher error correction requires more data modules (the black and white squares). A QR code with Level H needs about 65% more modules than the same data with Level L, resulting in a denser or larger code.

Can a QR code still scan if the corners are damaged?

The three large squares in the corners (finder patterns) are critical for QR code scanning. If these are significantly damaged, the code will not scan regardless of error correction level. The data area between and around these patterns is where error correction applies.

How does error correction work with AI QR art?

AI QR art generators like QR-Verse use ControlNet to blend artistic styles with QR code patterns. Error correction Level H is essential because the artistic transformation can obscure some modules. QR-Verse achieves a 98.9% scan rate through a 4-stage quality gate that verifies scannability.

Is error correction the same as encryption?

No. Error correction and encryption serve completely different purposes. Error correction adds redundancy so damaged data can be reconstructed. Encryption scrambles data so only authorized parties can read it. QR codes use error correction by default but are not encrypted - anyone who scans them can read the content.

What happens if I print a QR code too small?

Printing too small makes individual modules hard for cameras to distinguish, regardless of error correction level. Minimum recommended size is 2x2 cm for handheld scanning. Error correction helps with partial damage but cannot compensate for resolution limits of the scanning camera.


Error correction is what makes QR codes practical in the real world. A perfect QR code scanned under ideal conditions does not need error correction at all. But real codes face scratches, smudges, logos, artistic transformations, and years of physical wear. Reed-Solomon turns a fragile mathematical pattern into something that can absorb substantial damage and still work.

When you generate a QR code on QR-Verse, error correction level is selected automatically based on what you are creating. Logo codes get Level H. Plain codes get Level M. AI art codes always get Level H with a mandatory scan verification on top. You do not need to think about it - but now that you know how it works, you can make informed decisions when you do need to override the defaults.

Ready to create a resilient QR code with the right error correction for your use case? Start with QR-Verse - free, no account required for basic codes.

Start Free

Create your QR code in seconds

No signup, no credit card. 20+ QR types with full customization. Upgrade to Pro for unlimited power.

Related Articles

Create QR Code