Most QR code problems are not mysterious. A QR code is just a grid of black and white squares that a camera reads as ones and zeros, with built-in error correction so it survives a little damage. When a code refuses to scan, it is almost always because one of a handful of things went wrong during creation, printing, or placement. This guide walks through the mistakes people actually make and how to fix each one, so you can stop guessing and get a working code.
"I changed the URL and now the code is dead"
This is the single most common mistake. People generate a static QR code, print a thousand flyers, then realize the link points to the wrong page. A static code has the URL baked directly into the pattern. There is no server in between, so you cannot edit it after the fact. Changing the destination means generating a brand new code.
The fix depends on timing. Before you print anything permanent, decide whether you need to edit the link later. If you do, use a dynamic QR code, which encodes a short redirect URL that you control. The squares never change, but you can repoint the redirect to any destination. If you already printed a static code pointing somewhere wrong, there is no rescue. Reprint it. Going forward, treat the printed code as final the moment it leaves your screen.
"It scans on my phone but not on customers' phones"
You tested it once, it worked, you shipped it. Then half your users say nothing happens. Usually the culprit is contrast or size. QR scanners need a clear difference between the dark and light modules. Light gray on white, or a busy photo behind the code, confuses the camera. Reversed colors (light squares on a dark background) also fail on many readers, which expect dark-on-light.
Fix it by keeping the foreground genuinely dark, the background genuinely light, and leaving the "quiet zone," the empty margin around the code, intact. That blank border is not decoration; it tells the scanner where the code begins. Trim it off and many phones give up. For size, a rough rule is that the printed code should be at least one tenth of the scanning distance. A code read from two meters away on a poster needs to be around 20 centimeters wide.
"I added my logo and it stopped working"
QR codes include error correction, which lets them recover from missing or covered modules. That is why you can drop a logo in the middle and still scan. But there is a limit. Each code is generated at one of four correction levels, from roughly 7 percent recoverable up to about 30 percent. Cover more than the level allows and the data is gone.
If your branded code is flaky, regenerate it at a higher error correction level (often labeled H) before adding the logo, and keep the logo small and centered, away from the three large square finder patterns in the corners. Those corners tell the scanner the code's orientation. Obscure them and nothing else matters.
"The code is blurry, warped, or cut off"
Print and placement mistakes round out the list. Scaling a small code up stretches its pixels into mush, so always export at the size you will actually use, or use a vector format that stays crisp. Stickers wrapped around a curved bottle or mug distort the grid until the scanner cannot map it. Lamination and glossy surfaces add glare that washes out the contrast under store lighting.
The fixes are simple once you know to look. Generate the code at full resolution, test the final printed piece under the lighting where it will live, and place it on a flat surface whenever you can. Scan it yourself with two or three different phones before committing to a run.
A quick pre-flight checklist
Before you publish or print, run through this: the link is correct and final (or dynamic if you need edits), contrast is dark-on-light, the quiet zone is intact, the code is large enough for its viewing distance, any logo stays under the correction limit and off the corners, and you scanned the real output on more than one device. Catch these six things and the vast majority of QR failures simply never happen.