Common Timezone Bugs in Qr Code Apps: Causes and Fixes

Timezone bugs in QR code apps usually happen when the app mixes display time, validation time, and storage time without a clear contract.

February 05, 2026 · 4 min read · Common Issues

What causes timezone bugs in QR code apps

Timezone bugs in QR code apps usually happen when the app mixes display time, validation time, and storage time without a clear contract.

Common technical root causes:

Real-world impact

Timezone bugs in QR code apps are visible to users at the worst possible moment: checkout, boarding, entry, or payment.

Typical outcomes include:

7 ways timezone bugs manifest in QR code apps

  1. Event tickets expire one hour early or late

The QR payload stores event end time in local time, but the scanner validates it using UTC or the user’s device timezone.

  1. Boarding passes show the wrong departure time

The issuer stores departure time as "2026-05-10T09:30:00" without the airport timezone. A traveler in another country sees a shifted time.

  1. Coupons fail at midnight in the wrong region

A coupon valid “until end of day” is calculated using the server timezone instead of the store or customer timezone.

  1. Dynamic payment QR codes expire too soon

The backend sets exp in seconds, but the mobile scanner treats it as milliseconds, or the issuer and scanner use different clock assumptions.

  1. Parking QR passes reject users during DST changes

A two-hour parking session spans a DST transition. If the app adds fixed minutes instead of using timezone-aware duration logic, the pass may expire incorrectly.

  1. Multi-day passes lose one day

A pass valid from July 4 to July 6 is stored as UTC instants at midnight. In some timezones, the user sees July 3 or July 7.

  1. QR login or approval flows fail across regions

A login QR code generated in one region expires before the user scans it because the client and server clocks are not synchronized or lack skew tolerance.

How to detect timezone bugs

Use tests that intentionally break timezone assumptions.

What to look for:

How to fix each example

BugFix
Event tickets expire early or lateStore validation instants as UTC epoch milliseconds or seconds. Display event time using the venue timezone.
Boarding pass times shiftStore departure as an ISO 8601 instant with offset or UTC epoch, plus a separate display timezone field.
Coupons fail in the wrong regionDefine the coupon’s applicable timezone: store timezone, customer timezone, or campaign timezone. Do not default to the server timezone.
Payment QR codes expire too soonUse a single timebase for exp, usually Unix seconds. Add clock-skew tolerance, such as 30–120 seconds.
Parking passes break during DSTUse timezone-aware libraries and IANA zones. Avoid adding fixed 24-hour blocks for “calendar days.”
Multi-day passes lose a dayStore start and end as local dates plus the event timezone, then convert to UTC instants for validation.

Test Your App Autonomously

Upload your APK or URL. SUSA explores like 10 real users — finds bugs, accessibility violations, and security issues. No scripts.

Try SUSA Free