POS Offline/Unsynced Scans – How It Works and How to Manage It

Modified on Sun, 14 Jun at 4:44 PM

Introduction

This page explains how the Expian Scanning application handles ticket scans when devices are offline or have intermittent connectivity, why “unsynced” items appear, and how staff can review, retry, or delete them using the Offline Data screen. It’s written for all clients using scanning in POS.

1. What “Unsynced Scans” Means

When a scan is performed and the device cannot reach the server (no network, captive Wi‑Fi, VPN drop, API timeout), the POS records the action locally. These local items are “unsynced” until the device reconnects and the POS successfully posts them to the server.

  • Scanned Tickets – individual ticket scans captured by the camera/scanner
  • Scan Records – summary rows representing attempts with context (type, location, timestamp)
  • Attendance – check-ins recorded for capacity/attendance features
  • Go‑City – scans that must also register attendance in the Expian system
  • Once connectivity returns, valid items auto-sync; invalid ones remain visible so staff can retry or delete.

2. Where to Manage Unsynced Data

Use the new Offline Data screen in the POS left-hand menu.

  • Menu path: Menu → Offline Data
  • You’ll see sections for Scanned Tickets, Scan Records, Attendance, and Go‑City.

3. How Offline Scanning Works (Technical Overview)

POS is designed for offline scanning and periodic synchronisation. The background worker PeriodicTicketFetcherruns roughly every 15 minutes or can be triggered manually.

Worker actions:1) Sync offline attendance; 2) Sync offline Go‑City scans and register attendance in Expian; 3) Redeem all locally redeemed tickets; 4) Refresh today’s ticket cache locally.

How the app recognises what was scanned

The app classifies codes by their format:

When there is no internet, behaviour depends on reference type, whether ticket data was previously cached on the device, and whether the scan was already saved for later upload.

Individual ticket code (T)

Important: Without cached ticket details, the app cannot fully validate the ticket offline. It only queues the scan for later processing.

Booking reference (I)

Order reference (O)

Membership / patronage (M) and membership cards

Offline membership walk-up uses locally stored product/ticket-type data from the last sync. If that data is stale or missing, ticket options may be incomplete.

Go City pass (12-digit code)

Only in markets where Go City is enabled.

Go City offline logic uses cached attendance for the same pass, location, and date.

External / non-Expian barcodes

4. Why Some Items Stay Unsynced

  • Wrong environment (e.g., scanning a reference from a different tenant/UAT)
  • Malformed or random IDs
  • Connectivity edges: Wi‑Fi connected but no internet, captive portal, intermittent drops during sync

Valid scans usually auto-sync when back online. Invalid entries will persist in Offline Data until manually deleted.

5. Using the Offline Data Screen

From Menu → Offline Data you can:

  • Open a category (e.g., Scan Records) to see stored items with reference, type, scanned time, and location snippet.
  • Tap Sync on a single item to retry. If still invalid, you’ll see an error and the item remains listed.
  • Tap Delete to remove a single item, or Delete All to clear the table after review.

6. Typical Staff Workflows

6.1 Quick health check at start of shift

  1. Open Menu → Offline Data
    • Ensure the device has internet (e.g., open a site in the browser)
    • Tap into the category and press Sync on a few entries to confirm connectivity
    • If items fail to sync with errors like “invalid reference,” delete them after confirming they are test/invalid

6.2 During scanning with poor connectivity

  1. Continue scanning; POS will store scans locally and validate with cached rules where possible
  2. When network stabilizes, the worker will auto-sync valid items. You may also open Offline Data to trigger manual Sync on a few items

6.3 End-of-day housekeeping

  1. Open Offline Data and confirm categories are empty or contain only known invalid tests
  2. Use Delete All in a category to clear residual invalid records after review

7. Best Practices and Tips

Best practices

  • Confirm Wi‑Fi really has internet access, not just SSID association
  • Encourage short, periodic checks of Offline Data during busy periods
  • If you see a rising count of unsynced items, toggle Wi‑Fi off/on and run a quick browser check; then try Sync

Manual cache refresh: If local ticket cache seems stale, use Actions → Refresh content cache to re-fetch today’s tickets. The background worker also refreshes approximately every 15 minutes.

8. Limitations

  • Offline Orders are not handled by this feature. The feature focuses on scans/attendance data and their synchronisation.
  • Invalid references won’t auto-resolve; they must be deleted after review.

9. Testing the Feature (UAT guidance)

  • Force the device into offline mode or disable Wi‑Fi
  • Valid tickets for today’s service
  • Invalid references (from another environment or random IDs)
  • Valid references auto-sync and disappear from Offline Data
  • Invalid references remain; Sync shows an error; Delete removes them

10. Troubleshooting

  • Open a public website on the device to confirm internet
  • Use Sync on a single item to see the exact error; if “invalid reference,” delete it
  • Connect to a strong network, leave the POS on the Offline Data screen for a minute, then try Sync
  • Consider Delete All for obviously invalid test entries after review
  • Ensure device time zone and time settings are correct; a prior issue was resolved in recent versions

11. Release context and confirmation

  • “Offline Data” screen added to POS left-hand menu to surface Scanned Tickets, Scan Records, Attendance, and Go‑City, with manual Sync/Delete controls and “Delete all”.
  • Addresses earlier pain points where failed scan syncs accumulated with no way to clear them.

12. FAQs

Do valid scans always sync automatically when back online?

  • Yes. When connectivity returns, valid items are posted automatically by the background worker. You can also press Sync on an item to retry immediately.

Why do I still see entries after we’re back online?

  • They’re typically invalid (wrong environment, malformed ID, cancelled booking, or violated rules). Use Delete to remove after confirming they’re not legitimate scans.

Can I bulk-clear everything?

Yes. Each category page has a Delete All button. Use it only after reviewing the list, as the action cannot be undone.

Does this handle creating orders offline?

No. Offline Orders are out of scope. This feature covers offline/unsynced scans and attendance.

References

Audience: POS supervisors and operators Supported

—

Code with M in a fixed position

Depends on booking state

Ticket data cached on device from a recent sync

If no cache: saved for later redemption

Expian ID with “booking” marker

User sees

Blocked using locally stored history

What happens

Offline POS sale

Offline — routed via membership check first

No cached data, first scan offline

e.g. 123456789012

Yellow: “No data about booking, saved for redemption”

Walk-up screen with offline membership notice

Other / external barcode

Validated with Go City server

Go City messages

Validation uses cached data; redemption can proceed locally

Go City–enabled market

Go City pass

What happens

Order reference

Code with I in a fixed position

Reference type

App creates a placeholder offline membership record

Error recorded; no redemption

Scan is saved on device for upload when online

Saved as re-entry

Yellow: “No Internet Connection. Saved locally”

13-character code with T in a fixed position

Re-entry offline (within allowed rules)

Situation

Situation

User sees

Expian ID with “membership” marker

Notice: “The device is in Offline Mode. Please pay extra attention when recording a membership walk-up.”

Offline — if reached via ticket path with no cache

Walk-up in offline mode

Success or validation message as online

Situation

User sees

“Ticket redeemed locally” (green) if auto-redeemed

May be treated as offline membership

Situation

Online

Cached order/booking data

Situation

Membership lookup fails → app falls back to ticket scan

Yellow warning: “No data about booking, saved for redemption”

Situation

Red error (e.g. pass already used, max re-entries)

Already saved from a previous offline scan

Limited membership details; staff must use extra care

Booking reference

Uploads when connection returns

Scan is recorded locally

Treated as Go City (see above)

Warning or error message explaining the issue

Individual ticket

Does not match Expian format

What happens

Offline

Code with O in a fixed position

Full validation and redemption possible using cache

Sold on device while offline

How it is recognised (simplified)

Offline

Cannot save booking reference the same way as a ticket ID

Membership walk-up (likely incorrect for random barcodes)

Cached data + validation fails (wrong location, expired, etc.)

Cached booking data on device

What happens

Membership walk-up opens

Green success or specific error

Anti-passback / max entries offline

Validation and partial redemption possible

App may treat this as an offline membership and open membership walk-up instead of ticket redemption

Other markets, offline

Reference saved locally (same as ticket ID without cache)

User sees

What happens

What happens

Yellow warning: “You are offline. Already saved for redemption”

Expian ID with “order” marker

Red error: “Looks like a connection issue. Please scan again…”

12-digit numeric code

Pass saved locally

Expian ID with “ticket” marker

Example pattern

Codes starting with POS

Yellow: “Re-entry”

Partner or third-party codes

No cached data

Membership / patronage

First scan offline

User sees

User sees

Duplicate is blocked

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article