October 20, 2026
QR Code Expiry, Broken Links, and Redirect Failures: How to Design for Reliability
A QR code may take only seconds to generate, but keeping it functional over time requires careful engineering.
By Vrushika Dalia
2 min read
When a destination expires, a page disappears, or a redirect fails, users may encounter broken links instead of the information they expect. For businesses, this can mean lost conversions and a poor customer experience.
Generating a QR code is easy. Building a reliable QR experience is the real challenge.
Let's explore how developers can prevent common QR code failures.
1. Why Do QR Codes Stop Working?
A QR code does not usually expire on its own. Failures typically occur because of the URL or infrastructure behind it.
Common reasons include:
- Expired links: Temporary offers or registration pages are no longer active.
- Broken destinations: Pages have been moved or deleted.
- Redirect failures: The redirect service is unavailable or incorrectly configured.
- Domain expiry: The destination domain is no longer maintained.
- Server errors: The destination returns errors or becomes unavailable.
Understanding these failure points is the first step towards building a more reliable system.
2. Static vs Dynamic QR Codes
Static QR codes store the destination directly, while dynamic QR codes typically point to a redirect URL whose destination can be changed.
Dynamic QR codes offer flexibility, but they also introduce an additional point of failure. Neither type guarantees that the destination will always remain available.
3. Build Reliable Redirects
A dynamic QR system should handle missing destinations, expired codes, and temporary service failures gracefully.
For example, a Node.js redirect endpoint could handle unavailable destinations like this:
app.get("/q/:id", async (req, res) => {
try {
const destination = await getDestination(req.params.id);
if (!destination || !destination.active) {
return res.status(410).send(
"This QR destination is no longer available."
);
}
return res.redirect(302, destination.url);
} catch (error) {
return res.status(503).send(
"Service temporarily unavailable."
);
}
});app.get("/q/:id", async (req, res) => {
try {
const destination = await getDestination(req.params.id);
if (!destination || !destination.active) {
return res.status(410).send(
"This QR destination is no longer available."
);
}
return res.redirect(302, destination.url);
} catch (error) {
return res.status(503).send(
"Service temporarily unavailable."
);
}
});This is a simplified example. Production systems should also validate destination URLs, restrict unauthorised redirects, and log errors for troubleshooting.
The goal is to prevent users from reaching dead ends without explanation.
4. Prevent Failures Before They Happen
Instead of waiting for users to report broken QR codes, developers should implement proactive checks.
Validate destinations: Check URL syntax, permitted protocols, and applicable domain restrictions before saving a destination.
Monitor link health: Periodically check managed URLs for unexpected errors and unavailable pages.
Test redirect chains: Ensure redirects reach the intended destination without loops or unexpected domain changes.
Handle expiry properly: Enforce expiry on the server and display a helpful message when a code is no longer valid. Where appropriate, offer a relevant alternative destination.
Track failures: Monitor redirect success rates, response times, and recurring errors to identify problems early.
Remember that an HTTP 200 response does not always mean the complete user journey is working correctly. The destination page itself must also function as expected.
5. Why Reliability Matters for QR Platforms
QR codes often connect offline interactions with digital experiences, including product information, event registrations, and marketing campaigns.
Platforms such as Digital QR can support these workflows when combined with responsible destination management, appropriate access controls, and clear error handling.
For developers, reliability means more than keeping a link active. It means ensuring that users reach the correct destination and receive a useful response when something goes wrong.
Final Thoughts
QR code reliability depends on destination availability, redirect behaviour, expiry policies, and continuous monitoring.
By validating URLs, testing redirects, managing expiry, and tracking failures, developers can build QR systems that are easier to maintain and more dependable.
A reliable QR code is not just one that works today. It is one designed to handle tomorrow's failures gracefully.
QR Codes for Educational Institutions, 10 Proven Strategies to Grow Your Business, How QR Codes Are Used Today, Common QR Code Mistakes to Avoid for Better Scan Performance
Originally published at https://digitalqr.hashnode.dev on October 20, 2026.