PricingBlogSupport

QR code stopped working? How to find the cause and fix it

Updated October 1, 2026 · 4 min read

A QR code that used to work and suddenly does not is almost always one of three problems: the phone cannot read the pattern, the pattern is read but the page behind it is gone, or the code is dynamic and the service in the middle has stopped forwarding. Here is how to work out which one you have, in order of how quickly you can check.

Step 1: Does the phone see the code at all?

Open the camera and point it at the code. If no link or notification pops up, the phone cannot read the pattern. This is a print or placement problem, not a link problem.

Common causes:

  • Too small for the distance. A rough rule: the code should be at least one tenth of the scanning distance wide. A code read from 1 meter needs to be at least 10 cm wide.
  • Low contrast. Light grey on white, or brand colors that are too close together. The code should be clearly darker than its background.
  • Inverted colors. A light code on a dark background confuses many phone cameras.
  • No quiet zone. QR codes need an empty border around them, roughly the width of four of the small squares. Cropping it tight to a design element breaks scanning.
  • Glare or damage. Glossy lamination under lights, scratches, folds, a sticker over one corner. The three big squares in the corners matter most.
  • Logo too big. A logo covering more than about a quarter of the code removes too much data, even with high error correction.

Try a second phone too. If one phone scans it and another does not, the code is borderline and should be reprinted larger or with better contrast.

Step 2: Where does the link go?

If the phone shows a link, look at it carefully before tapping.

  • If it is your own website, the code is static. The pattern is fine. Tap through and see what loads. A "page not found" error means the page was moved or deleted. Fix it on your website by restoring the page or adding a redirect from the old address to the new one. You do not need to reprint anything.
  • If it is a short link on a QR provider's domain, the code is dynamic. Go to step 3.
  • If it is a link you do not recognize at all, someone may have stuck a fake code over yours. This happens with parking meters and restaurant tables. Check the physical code for a sticker layered on top.

Step 3: Dynamic code? Check the provider

When a dynamic code opens a page asking you to log in, upgrade, or saying the code is inactive, the provider has stopped forwarding it. The usual reasons:

  1. The free trial ended. Many big QR generators offer dynamic codes during a short trial and deactivate them afterwards if you do not subscribe.
  2. Payment failed or the plan was cancelled. Check the email address the account was created with for billing notices.
  3. A scan limit was reached. Some free plans cap scans per code or per month.
  4. The code was disabled for a policy reason, for example if the destination was flagged as unsafe.

Log in to the account that created the code. If you do not know which account that was, search your email for the provider's name.

Step 4: Decide how to fix it

You have three realistic options:

  • Pay the provider to reactivate. If a lot of material is already printed, this is often the cheapest way out in the short term. Ask for monthly billing if you only need time to replace the codes.
  • Fix the destination. If the code is static and the page moved, restore the old address or redirect it. No reprint needed.
  • Replace the codes. If you do reprint, make the new codes with a provider whose terms say what happens when you stop paying, or use static codes if the link will never change.

How to stop it happening again

  • Read the cancellation terms before printing. Look specifically for what happens to dynamic codes when a trial ends or a plan is cancelled.
  • Prefer monthly billing while you test. If a provider only shows a monthly price billed yearly, you are committing to a full year.
  • Keep a list of where each code is printed. When something breaks, you will know what to replace.
  • Test in the real place. Scan it where it will hang, in that light, with two different phones.

What ScanStill does differently

We built ScanStill around the failure in step 3. Our dynamic codes do not expire on a timer, there are no scan caps on any plan, and the free account includes 1 dynamic code forever. If you cancel a paid plan, codes keep redirecting for 30 days and you can export your full list. If ScanStill ever closes, we commit to 12 months notice and a redirect handoff.

If your code is static and the problem is in steps 1 or 2, our free generator will make you a clean replacement in a minute. If you need a code you can fix later without reprinting, read dynamic vs static QR codes or see pricing.

Make a code that keeps working

Static codes are free with no signup. Your first dynamic code is free forever.

Keep reading