What you are seeing
The code scans, but the phone will not join the WiFi network: nothing happens, an error appears, or the phone asks for a password the code was meant to supply. The scan worked, so the fault sits in the WiFi payload: the network name, the password, the security type, or the way the phone handles the join request. WiFi codes fail silently more than most, because the phone often shows no clear error. The fix is to decode the payload and to check every field against the real network settings.
Likely causes
1.
Wrong network name in the payload — A network name with a typo, a missing character, or the wrong capitalisation points the phone at a network that does not exist. Test: decode the payload and compare the name with the router settings.
2.
Wrong password in the payload — A password with a typo or an outdated value makes the phone fail to join without a clear error. Test: join the network manually with the same password.
3.
Wrong security type — A payload that names the wrong security type, such as the wrong WPA variant, can fail on phones that enforce the type. Test: check the security type in the router settings.
4.
Non-standard payload format — A hand-typed WiFi payload with a wrong field order or separator can fail on one platform and work on another. Test: decode the payload and compare it with the standard format.
5.
Phone already knows the network differently — A phone that already has a saved entry for the network, with an old password, can ignore the code or clash with it. Test: forget the network on the phone and scan again.
Step-by-step fix
1. Decode the payload and write down the network name, password, and security type it carries.
2. Compare every field with the router settings, including capitalisation.
3. Join the network manually with the same password to confirm the network itself works.
4. Rebuild the code with the WiFi generator in the standard format.
5. Forget the network on the test phone, then scan the rebuilt code.
6. Retest on two phones that have never joined the network.
Putting this into practice
In practice, never hand-type a WiFi payload. The format is fussy about separators, field order, and escaping, and a single misplaced character breaks the join. Use the WiFi generator, copy the network name and password from the router settings, and test on a phone that has never joined the network. Keep a short note of what you tested, what failed, and what you changed, so the next person starts from evidence rather than guesswork. A fix that is written down survives staff changes and reprints; a fix that lives only in memory gets repeated.
Common mistakes to avoid
- Testing a WiFi code on a phone that already knows the network, so a broken payload appears to work.
- Reprinting the full run before a single proof passes, which turns one failure into many.
- Testing on one phone in ideal conditions instead of two phones in the real conditions where a code that scans but the WiFi will not connect will be used.
- Changing the artwork and the placement at the same time, so you cannot tell which change fixed a code that scans but the WiFi will not connect.- Skipping the proof test because the change looked small, when small changes cause most repeat failures.
Quick checklist
- The decoded network name, password, and security type match the router
- The code is built in the standard format
- Two fresh phones join from the scan alone
- The corrected proof passes on two phones in the real conditions
- The fix is recorded in the job file so the next reprint starts from a proven setup
- Every printed copy is checked against the approved proof
- The proof is retested after any later change to the link, design, or placement
Related tools and guides
- [QR payload inspector](/qr-payload-inspector)
- [QR offline verifier](/qr-offline-verifier)
- [WiFi QR code generator](/wifi-qr-code-generator)
- [bulk WiFi QR generator](/bulk-wifi-qr-generator)
- [QR scan log](/qr-scan-log)
- [QR safety checker](/qr-safety-checker)