QR code not working on your phone
Is it the phone or the code?
Test the same code on a second phone before changing anything. If both refuse it, the code is at fault (size, quiet zone, contrast or surface) and the fix is inthe six causes of a code that will not scan. If one phone reads it and another does not, the code is borderline and the phone that failed is telling you it will fail again in the field.
That second case is the one people misread. A code that only works on a good camera in good light is not a working code. It is a code with no margin, and margin is the entire point when the thing is going on a wall.
iPhone: the setting that is off more often than you think
Scanning is built into the iPhone camera, and it can be switched off. OpenSettings → Camera and check that Scan QR Codes is on. If it is on and nothing happens:
- Use the rear camera. The front one focuses differently and often will not lock on.
- Hold still for a beat. The notification banner appears at the top and is easy to miss; it does not open the page on its own.
- Move to 10-30cm for a small code. Too close is as bad as too far, the lens cannot focus and the pattern blurs.
- Try the Control Centre Code Scanner, which is a dedicated scanner rather than the camera’s opportunistic detection, and is noticeably more tolerant.
- Check Screen Time restrictions if the banner appears but the page is blocked.
Android and Google Pixel
Android is not one behaviour. Most current camera apps detect codes automatically; some need you to open Google Lens first, and on a number of handsets the feature has a toggle in the camera’s own settings that ships off.
- Open the camera and wait two seconds without tapping. Auto-detection is often slower than people’s patience.
- Try Google Lens, in the camera app, in the Google app, or in Photos on a picture of the code. Lens is the most tolerant scanner most people already have.
- Check the camera settings for a “Scan QR codes”, “Google Lens suggestions” or “Scene detection” switch.
- Photograph it, then scan the photo from the gallery. This defeats camera shake and bad light in one move, and it works when live scanning will not.
On Samsung, the scanner lives in the camera and also in Quick Settings as a dedicated Scan QR code tile, pull down the notification shade and look for it. Older Galaxy handsets routed this through Bixby Vision instead, which is why guidance written a few years ago no longer matches the phone in your hand.
It scans, but nothing opens
The camera decoded the pattern and had nowhere to send you. That means the code does not contain a web address: it might be plain text, a Wi-Fi credential, a contact card, or a payment instruction like an M-PESA code, which only the right app can act on. Hold the camera on it and read the banner text rather than tapping, whatever it says is what is actually encoded.
It opens, and the page is an error
If the browser opens and shows an error, the QR code did its job perfectly and the destination is gone. Nothing about the printed pattern can fix this. A static code encodes the address directly, so a moved or deleted page kills every copy already printed, permanently, on every poster, menu and business card carrying it.
This is the single most expensive QR failure, and the only one that is preventable in advance rather than diagnosable afterwards. A dynamic code points at a short link you control, so a dead destination becomes an edit. The paper never has to be reprinted.
The two-minute checklist
- Clean the camera lens. Genuinely. This is the most common silly one.
- Second phone. Both fail, blame the code; one works, the code has no margin.
- Move to arm’s length, then closer, then further. Let the focus settle.
- Turn on more light, or turn the paper away from a direct reflection.
- Photograph the code and scan the photo from the gallery.
- Try Google Lens or the iPhone Control Centre scanner instead of the camera.
- Read the banner text, if it is not a link, it was never going to open a page.
If you printed it, this is the part that matters
Everything above is what your customer will not do. They will scan once, get nothing, and put the phone back in their pocket. So the real fix runs before the print job:size the code for the distance people stand, keep the quiet zone, hold contrast above 3:1, and test the final printed proof on the oldest Android handset in the office in the worst light in the building. That handset is the one that decides whether the campaign works.
Questions
The things people ask before they commit something to paper.
Why does a QR code work on one phone but not another?
Because scanners differ enormously in tolerance, and most codes that fail are borderline rather than broken. A newer sensor, better light, a steadier hand or a shorter distance can each be the difference. If a code needs a good phone to work, it will fail in the field, treat one refusal as a warning about the code, not a fault in that handset.
Why has my QR code suddenly stopped working?
If the camera still recognises it and the browser then shows an error, the pattern is fine and the destination died. That is the failure mode of a static code, and the only fix is a reprint. A dynamic code survives it, because the printed pattern points at a short link whose destination you can change.
Do QR codes expire?
The printed pattern never expires. It is ink. What expires is either the destination page or, on some providers, the free trial that the short link inside it depended on. That second one is the trap: your code stops working because someone else’s billing lapsed. Klip free-tier links never expire, which is a deliberate commitment rather than a current promotion.
Why does my phone scan the code but nothing opens?
Usually the code contains something that is not a web address (plain text, a Wi-Fi payload, a payment instruction) and the camera has decoded it correctly with nowhere to send you. Point the camera at the code and read the notification text rather than tapping it; that tells you what is actually encoded.
Can a screen protector or a cracked lens stop QR scanning?
Yes, and it is under-diagnosed. A scratched or greasy lens cover softens the image just enough that a small or low-contrast code drops below the decoding threshold, while large codes still work fine. Clean the lens before concluding the code is bad.