Skip to main content

Troubleshooting

A first-pass checklist for scanning, entitlement and connectivity symptoms — and the evidence to collect before escalating.

Start here: classify the symptom

A first-pass checklist for scanning, entitlement and connectivity symptoms, and how to assemble a privacy-safe support bundle when escalation is required.

  1. 1. Classify the symptom

    Separate scanning behaviour from account behaviour. A barcode that will not resolve is a capture or label problem; a device that will not activate is usually an entitlement or billing-state problem, and the two follow different paths.

  2. 2. Work through scanning symptoms

    A hidden or damaged label needs another angle or a focused scan. A lot, serial or expiration value without a qualified GTIN is temporary evidence, not a receivable item, and repeated video frames are not quantity — so a missing item is often a GTIN qualification result rather than a fault.

  3. 3. Work through entitlement symptoms

    Check the device state in the portal before reinstalling anything: pending enrollment, payment grace, deactivated and revoked each explain a different failure to scan. Confirm the licensed quantity still covers the seats in use.

  4. 4. Assemble a support bundle

    Collect the evidence listed below from the portal and the device. A support bundle is generated only with explicit consent, is privacy-safe by design, and is retained according to your configured retention window.

  5. 5. Escalate with context

    Open the support request from the portal so the bundle, tenant, site and device references travel with it. Include the time window and the receiving workflow step where the symptom appears; support boundaries and response expectations are described in support services.

Troubleshooting progression from problem detection through diagnosis and fix to verified scan
Troubleshooting starts with the symptom, moves through evidence, applies the fix, and ends only when a scan is verified again.
Troubleshooting decision tree
  1. The SDK will not start at all

    → Installation · Initialization

    Evidence: the portal device state (pending · active · payment grace · deactivated · revoked). Reinstalling does not fix entitlement state.

  2. It scanned yesterday, but not today

    → Licensing

    Evidence: the portal device state, and the licensed quantity against the seats in use. Resolve it in the portal — restore billing, reactivate, or complete enrollment.

  3. The scanner fires, but nothing reaches the app

    → Camera and scanner

    Evidence: DataWedge 8.2 or newer with its profile assigned to the host app, and the host registered for the DataWedge broadcast action.

  4. Frames submit, but no observations come back

    → Initialization

    Evidence: the submit return value — a native status code, not a barcode count. An empty observation list is a valid no-decode result, never an error (see the GS1 decode contract).

  5. Lot, expiry, or serial arrive with no GTIN — or one label counts twice

    → Scan results

    Evidence: the isOcrRescue flag for OCR-derived evidence; whether receiving keys on the canonical event or on raw frames.

  6. A GTIN-shaped value fails validation, or an OCR-filled GTIN routes to review

    → GS1 and GTIN

    Evidence: the modulo-10 check digit against the value exactly as the label carries it; the isOcrRescue flag. OCR-only GTIN or serial evidence requires review and must never auto-commit.

  7. The API answers with an error document

    → API

    Evidence: the RFC 9457 code field and the correlationId — include both when you contact support.

  8. None of the above matches

    → assemble the support bundle, then escalate through support services

    Evidence: the bundle is generated only with explicit consent and is privacy-safe by design.

Start from the symptom that matches, follow it to the FAQ group, and gather the listed evidence before you escalate. The tree is plain text — it reads the same on any screen size.

Troubleshooting FAQ

Each answer follows the same shape: the problem, the usual cause, what to check, and the fix. If your symptom is not here, work through the checklist above and assemble a support bundle below.

Installation

The SDK installs but initialization fails on first launch

Problem: the app installs, but the SDK will not initialize, so no session can start.

Cause: a device that is not enrolled, or whose entitlement was revoked, cannot activate — initialization failure is usually an entitlement or billing-state problem, not an install problem.

Check: confirm the device was enrolled from the customer portal for the right site, and look at the portal device state (pending, active, payment grace, deactivated, revoked).

Solution: complete enrollment in the portal. A device in pending enrollment does not consume a seat, so you can finish setup before committing a license. Do not reinstall the app — reinstalling does not fix entitlement state.

Initialization

submitFrame is accepted but returns no observations

Problem: the frame was accepted, but the observation list is empty.

Cause: an empty list is a valid no-decode result. Native absence, malformed decoder output, or an undecoded frame never produces a sample GTIN — the SDK refuses to invent data. The GS1 decode contract documents the full deterministic path.

Check: the submit return value is a native status code, not a barcode count. Confirm the frame was actually accepted before you chase the empty result.

Solution: adjust the capture — another angle or a focused scan — and submit again. Never treat an empty result as an error.

Licensing

A device that scanned yesterday will not activate today

Problem: a previously working device stops scanning with no app-side change.

Cause: the entitlement changed — the device may have moved into payment grace, been deactivated or revoked, or the licensed quantity no longer covers the seats in use.

Check: the device state in the portal first — pending, active, payment grace, deactivated, revoked — and compare the licensed quantity against the seats in use.

Solution: resolve it in the portal: restore billing to clear a grace state, or reactivate the device. Check the portal before reinstalling anything.

A newly enrolled device will not activate even though seats are available

Problem: the portal shows free seats, but the new device fails to activate.

Cause: the device is still in pending enrollment — it has not received its signed entitlement yet.

Check: the portal device state for the new device.

Solution: complete enrollment from the customer portal for the site the device belongs to. When enrollment completes, the operations portal issues the signed device entitlement license.

Camera and scanner

No scan results arrive on Zebra hardware

Problem: the scanner fires, but scan output never reaches your app.

Cause: DataWedge integration works through broadcast intents. If the host is not registered for the DataWedge broadcast action, results never arrive — the scan itself works, the handoff is broken.

Check: DataWedge 8.2 or newer, with its profile assigned to your host application, and confirm the host registered for the DataWedge broadcast action.

Solution: register the host for the broadcast action, then map the scan output to canonical observations and render only GTIN-scoped evidence. See the Zebra quickstart for the wiring.

A barcode will not resolve no matter how many times I scan it

Problem: one label never decodes, while others scan fine.

Cause: a hidden or damaged label — or malformed input that fails deterministically instead of producing a guess.

Check: try another angle or a focused scan on the same label.

Solution: a single label often needs a focused scan from another angle. If it still never decodes, the label itself is the problem — reprint or replace it, because repeated scanning of an unreadable label will not help.

Scan results

Frame-level behavior (what one video frame produces vs what a sweep observes) is the Scan & Count model: frames deduplicate — they never count physical packages.

The scan shows a lot or expiry but no GTIN — can I receive the item?

Problem: you see lot, serial, or expiration evidence but no qualified GTIN.

Cause: a lot, serial, or expiration value without a qualified GTIN is temporary evidence, not a receivable item. GTIN is the primary identity; everything else is GTIN-scoped — see the GTIN-first principle in Platform concepts.

Check: confirm whether the evidence is OCR-derived (the isOcrRescue flag marks OCR-derived evidence).

Solution: do not receive on partial evidence — rescan for the GTIN.

The same label scans twice and the count doubles

Problem: one physical label is counted more than once.

Cause: repeated video frames are not quantity — each frame is capture evidence, not a separate item.

Check: whether your receiving logic keys on raw frames or on the checkpointed canonical event.

Solution: key receiving on the canonical event, not on raw frames. See canonical JSON events.

GS1 and GTIN

The GTIN looks right but fails validation

Problem: a GTIN-shaped value is rejected during validation.

Cause: a check-digit mismatch. A GTIN must pass modulo-10 check-digit validation before it counts as a GTIN.

Check: run the modulo-10 check-digit validation against the value, exactly as the label carries it.

Solution: rescan the label — a single misread digit fails the check. If the value fails repeatedly, the label is misprinted; reprint it.

OCR filled in the GTIN — why does receiving still ask for review?

Problem: the GTIN came from OCR and the workflow routes it to review instead of committing it.

Cause: that is the policy, not a bug. OCR-only GTIN or serial evidence requires review and must not auto-commit.

Check: the isOcrRescue flag — it marks OCR-derived evidence.

Solution: route OCR-only evidence to review. Never auto-commit it; a barcode rescan is the way to promote it to a first-class observation.

API

My API call returns an error document instead of data

Problem: the API answered with an error, and you need to know what it means.

Cause: API errors are reported as RFC 9457 problem documents carrying a stable machine-readable code and a correlationId.

Check: read the code field — it is the stable part of the contract, not the human-readable message.

Solution: branch on the code to decide what to do next, and include the correlationId when you contact support. See API overview for the error concepts.

Support-bundle evidence checklist

If the FAQ above does not resolve your issue, collect this evidence before you escalate — a support bundle is generated only with explicit consent and is privacy-safe by design.

  • Tenant, site, and device identifiers from the devices portal — so support can locate the same records you are looking at.
  • The time window where the symptom appears, in the time zone the receiving team works in.
  • The device and entitlement state shown in the devices portal — pending, active, payment grace, deactivated, or revoked — at the time of the symptom.
  • The SDK release and model provenance for the device, compared against the support matrix.
  • The receiving workflow step where the symptom appears — capture, decode, GS1 interpretation, association, review, or commit. The canonical JSON events page carries the event vocabulary those steps emit.