What you are seeing
The code scans, the booking page opens, but the booking fails: an error message, a form that will not submit, or a calendar that shows no availability. The scan worked, so the fault sits in the booking journey: the link, the booking settings, or the page itself. A booking code that errors loses the booking at the moment the visitor decided to commit, which is the worst time to fail. The fix is to walk the booking journey manually and to find the step that errors.
Likely causes
1.
Booking link expired or changed — A booking link that changed, expired, or was replaced can error for every visitor. Test: open the booking link directly.
2.
Booking settings blocking the request — A booking calendar with no availability, a closed service, or a rule that blocks the requested date can error. Test: check the booking settings and availability.
3.
Link missing the booking details — A booking link that should carry a service, a date, or a location can error when those details are missing or mistyped. Test: decode the payload and compare the link with the intended booking link.
4.
Redirect dropping the booking details — A redirect can strip the booking parameters from the link, landing visitors on a generic page that errors. Test: follow the redirect chain and watch the booking parameters.
5.
Page script or form fault — A script error or a form fault can stop the booking from submitting even when the link is correct. Test: complete a booking manually without the QR code.
Step-by-step fix
1. Decode the payload and write down the exact booking link it carries.
2. Walk the booking journey manually, without the QR code, and note where it errors.
3. Check the booking settings and availability for the service.
4. Follow the redirect chain and check that it preserves the booking details.
5. Fix the link, the redirect, the settings, or the page, whichever errors.
6. Retest by scanning the code and completing a test booking on two devices.
Putting this into practice
In practice, the manual booking test splits this problem in two. If the booking fails without the code, the booking setup is at fault. If it works manually but fails from the code, the payload or the redirect is at fault. That test tells you where to fix. 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
- Relaunching a booking QR code after a scan test, without ever completing a test booking.
- 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 booking page errors 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 booking page errors.- Skipping the proof test because the change looked small, when small changes cause most repeat failures.
Quick checklist
- The booking link works directly in a phone browser
- The booking settings allow the requested booking
- A test booking completes from a scan on two devices
- 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
- [survey QR code generator](/survey-qr-code-generator)
- [feedback QR code generator](/feedback-qr-code-generator)
- [QR payload inspector](/qr-payload-inspector)
- [QR redirect chain viewer](/qr-redirect-chain-viewer)
- [QR expiry checker](/qr-expiry-checker)
- [UTM builder](/utm-builder)