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
- 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
- Continue scanning; POS will store scans locally and validate with cached rules where possible
- 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
- Open Offline Data and confirm categories are empty or contain only known invalid tests
- 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
- https://ticknovate.atlassian.net/wiki/spaces/~817260622/pages/1394114561
- https://ticknovate.atlassian.net/browse/CORE-8638
- https://ticknovate.atlassian.net/browse/CORE-8480
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
Feedback sent
We appreciate your effort and will try to fix the article