Guide · Troubleshooting
Wi-Fi QR Code Not Working
Almost every broken Wi-Fi QR code is one of two failures, and they have completely different fixes. If the camera never recognises the code, it is a printing problem. If the camera reads it and the join still fails, it is a network or payload problem — usually a WPA3 downgrade, a hidden network with no H:true, or an unescaped character.
Updated September 2026 · 6 minute read
First, decide which failure you have
This is the whole diagnosis, and it takes ten seconds. Watch what the phone does.
| Camera never reacts | Print or display fault → jump to Will not scan |
|---|---|
| Camera reads it, join fails | Payload or network fault → jump to Scans but will not connect |
| Join works, then a login page | Captive portal — expected behaviour, not a fault |
| Join works, then asks for password | See the FAQ below |
Problem 1: the code will not scan at all
Work down this list in order. It is sorted by how often each cause appears in practice.
- The quiet zone was trimmed. Scanners need the blank margin around the code to find it. Cutting into it is the single most common cause, and the code still looks perfect.
- Glossy paper under a light. The giveaway is that it scans fine when you move the sheet out of the lamp's reflection.
- The code is too small. Under 1.5 inches, cameras hunt for focus. Under 0.75 inches, most phones give up entirely.
- The sheet was scaled to fit. Turn off fit-to-page and shrink-to-fit, and print at 100 percent.
- Draft or toner-save mode. Light gray modules instead of black ones destroy contrast.
- Lamination bubbles or a crease sitting across the code.
- A coloured or tinted code rather than black on white.
Problem 2: it scans, but will not connect
This is the failure that damages trust, because everything looks like it worked. The phone reads the code, parses it, and then nothing happens. Three causes account for nearly all of it.
WPA3 was quietly downgraded to WPA
The Wi-Fi QR format writes the security type as T:. A WPA3-only network needs T:SAE. Plenty of generators put a WPA3 option in the interface and then emit T:WPA anyway. On a WPA2/WPA3 transition network nobody notices, because the downgrade is invisible. On a WPA3-only network the join fails silently.
In Wifivia, pick WPA3 (SAE) under Security and the payload carries T:SAE. If you are not sure what your router runs, WPA / WPA2 is right for the overwhelming majority of guest networks.
The network is hidden and the code lacks H:true
A hidden SSID does not broadcast its name, so a phone scanning normally will never see it. The format solves this with an H:true flag that tells the phone to probe for the network instead of waiting for a beacon. Without the flag, the code parses perfectly and the join still fails. Tick the hidden network box in Wifivia and the flag is added.
A special character broke the payload
The characters \, ;, ,, : and " must be escaped with a preceding backslash inside the QR payload. Skip that step and a semicolon in the password ends the string early — the phone receives a truncated credential and rejects it. Wifivia escapes these automatically, which is worth knowing if you are comparing generators.
Things a Wi-Fi QR code cannot do
The format is deliberately small. It carries a security type, a network name, a password and a hidden flag — nothing else.
- No usernames. WPA-Enterprise and 802.1X networks that need a username cannot be encoded. Common in offices and universities.
- No captive portals. A hotel or cafe splash page still opens after joining. Print that on the sign, or guests will assume the Wi-Fi is broken.
- No vouchers or room numbers. Same fix: print them beside the code.
- No changing credentials. The code is static. Change the password and every printed sign is now wrong.
How to diagnose one in five steps
-
Decide which failure you have
Camera will not recognise it means print. Camera reads it but the join fails means payload or network.
-
Check the physical print
At least 1.5 inches, quiet zone intact, matte paper, printed at 100 percent.
-
Check the encryption type
On a WPA3-only network the code must carry
T:SAE, notT:WPA. -
Check for a hidden network
A non-broadcasting SSID needs
H:trueor the phone never finds it. -
Regenerate and re-test
Scan the fresh print from the distance and angle a guest would actually use.
Frequently asked questions
Why does my Wi-Fi QR code scan but not connect?
Almost always one of three causes: the code says T:WPA on a WPA3-only network, the network is hidden and the code is missing H:true, or a semicolon or backslash in the SSID or password was not escaped and the payload was cut short.
Does a Wi-Fi QR code work with WPA3?
Yes, but only if the code is emitted as T:SAE. Many generators offer WPA3 in the interface and still write T:WPA, which scans, parses and then fails to join on WPA3-only hardware. Pick WPA3 in Wifivia and the payload carries T:SAE.
Can I use a QR code on a hidden network?
Yes. The code needs the H:true flag so the phone actively probes for the SSID instead of waiting for a beacon. Without it, the code scans and parses but the phone cannot find a network it never sees.
Why does my phone ask for the password after I scan the code?
Either the code carried no password field, the phone does not recognise the payload, or the network is a captive portal that asks for a room number or voucher after joining. Open networks legitimately have no password, and corporate logins cannot be encoded at all.
Will a Wi-Fi QR code work on a hotel or corporate login network?
Not for the login itself. The Wi-Fi QR format carries only a security type, a network name, a password and a hidden flag. Networks that need a username, a voucher or a splash page have to be joined normally, and the sign should say so.
Do I have to reprint the sign after changing the password?
Yes. A printed Wi-Fi QR code is static: the credentials are baked into the pattern. The old code keeps broadcasting the old password until you replace the sign, which is worse than having no sign at all.
Regenerate your code with the right security type and the hidden network flag — then print and scan-test it.
Make my sign