New Bluetooth Scanner - Barcode Not Recognized

Got the email today that Shopify POS can now use other Bluetooth barcode scanners in HID mode. Been wanting this for four years, since I really dislike the Socket scanner (and ours hasn’t been able to charge in its cradle for over a year). I had already purchased a basic 2D scanner before finding out only Socket worked, so I pulled it out and set it up.

I’m using the most recent version of Shopify POS (updated today) on the current version of iOS. It connected fine. There is no setup in POS, other than the HID switch mentioned in the setup on this page. If I scan any code into the search box, it displays properly. But if I scan from the POS home screen, I can scan ONE product—any product—and everything after that results in “Barcode not recognized.” It’s almost like after the scanner submits the code, it’s dumping something else in the buffer that interferes with the next code. If I reset the scanner or change mode, I get one more good scan into POS and then nothing after that.

I tried scanning codes in the scanner’s booklet to change the suffixes, reset to factory settings, disconnected and reconnected from Bluetooth, restarted POS and the iPad—all multiple times. If I scan codes into another app, say Notes, I see what I should see: the barcode and a return to the next line, where the next bar code scans in, nothing odd.

Any ideas?

To clarify, when I scan in the search box, it displays the correct code AND finds the correct product, so I’m certain it’s correct.

Hi @Dascalargo :waving_hand:

Thanks for sharing all the details — I can see why this is frustrating, especially after waiting so long for HID barcode scanner support. From your description, it sounds like the scanner works fine outside of Shopify POS, but after the first scan in the POS app, subsequent scans aren’t recognized.

Here’s what’s likely happening and some possible solutions:


:one: Check Scanner Suffix Settings

  • Many scanners have a “Carriage Return / Enter” suffix that tells apps when a scan is complete.

  • Shopify POS sometimes expects only one return per scan.

  • Try scanning the configuration bar in the scanner’s manual to set it to a single carriage return only and disable extra tabs or line feeds.


:two: Test in HID Keyboard Mode Only

  • Confirm the scanner is in HID Keyboard mode — some scanners have multiple modes (HID, USB Keyboard, or Serial).

  • Only HID Keyboard mode is officially supported for Shopify POS at the moment.


:three: Update POS & iPad

  • You mentioned the POS and iOS are updated — good!

  • Make sure there are no pending Bluetooth accessories updates in iOS: Settings → General → About → Bluetooth Devices.


:four: Interference or Background Apps

  • Some background apps may intercept keyboard input.

  • Try closing all other apps and testing with only Shopify POS open.


:five: Consider Shopify Support & Scanner Compatibility

  • Since this is brand-new HID support, it’s possible the POS app has minor bugs with certain scanners.

  • It may be worth submitting a bug report to Shopify Support, mentioning:

    • Model of the scanner

    • iOS version

    • POS version

    • Behavior (first scan works, subsequent scans fail)

Shopify’s POS team can confirm if the issue is a scanner-specific limitation or a software bug.


:light_bulb: Tip:

  • Some users have success pairing the scanner, scanning one test product, then going to a blank search field before scanning multiple products. This sometimes avoids the “buffer lock” issue.

Hi @Dascalargo,

Thanks for sharing this — you’re definitely not the only one running into quirks with the new HID scanner support. From what you described (first scan works, every scan after returns “Barcode not recognized”), it sounds like the scanner is sending an extra suffix or hidden character that POS doesn’t know how to handle.

A couple of things to check/try:

1. Suffix / Enter Key Codes

  • Shopify POS expects the scan to end with a carriage return (Enter/Return).

  • Some 2D scanners ship with Tab or Extra characters enabled by default. That would explain why Notes looks fine but POS chokes after the first scan.

  • In your scanner manual, look for the option to set the suffix to just CR (Carriage Return / Enter). Disable “Tab,” “Line Feed,” or “Extra codes.”

2. Clear Hidden Prefixes

  • Some scanners prepend an invisible character (like a control code).

  • Resetting to factory settings sometimes doesn’t clear this. Try scanning the code for “Remove all prefixes” or “Set prefix = none” from your manual.

3. Keyboard vs HID Toggle

  • Double-check the HID/Keyboard emulation toggle in iOS Bluetooth settings.

  • After reconnecting, test in both Notes and Safari’s address bar — you should only see the raw numbers + line break.

4. Test With Alternate App First

  • Try scanning into Shopify Admin on a browser (not POS). If it works cleanly there, that confirms POS is rejecting the unexpected suffix.

5. Temporary Workaround

  • Some merchants got around this by mapping the scanner to “Enter only” and disabling Line Feed. That fixed the “one scan works, second fails” issue.

:backhand_index_pointing_right: If all else fails, I’d recommend contacting Shopify Support with your scanner model number — HID support is still very new, so it’s possible your scanner’s default suffix handling isn’t fully compatible yet, and they’ll likely collect reports to patch it.

@Asiko_Dev and @StoreGrowthPro,

I appreciate the input. I’ve tried pretty much everything you suggested, short of filling a ticket with Shopify, which I’ll do when I get the chance.

Thanks for the info about POS using CR only. I tried every possible option, and had more-or-less assumed that the suffix was supposed to be just CR, but having that confirmed is helpful. I don’t recall there being an option for Enter only, disabling Line Feed, but I’ll look again.

I have tested in both Notes and Safari (and the search bar in POS). I only see digits when I do so, along with the return (when I have that mode turned on). Is it possible it could be sending characters that those apps don’t see, but POS in scan mode does?

If anyone else has any ideas, I’m listening.

Thanks!

Got it!

I gave it another try this morning. I realized that while I had been resetting the scanner after each attempt, I wasn’t consistently resetting POS. So if Attempt 1 was the wrong setting, I reset the scanner and tried again, but if I forgot to reset POS, too, then Attempt 2 would fail—even when it was the correct settings.

It was @StoreGrowthPro and the confirmation of the correct suffix that led me to finding the solution, so I’m marking they’re answer as the solution.

For anyone else: The suffix is a return (CR), no line feed, and there should be no prefix.

Spoke too soon. It works… for a short period. Most codes work, but not all. And when one doesn’t work, that’s it. None of the codes will scan from that point forward. It seems like the only way to reset the system is to exit POS and start over.

So… If anyone out there is more successful than I have been, I’d appreciate the input. Until then, I need to reload that stupid Socket scanner.

Thanks for the update, I can see why this is frustrating, especially since the scanner works fine in Notes but not reliably inside POS. That rules out a hardware issue and points more to how Shopify POS is interpreting the input buffer after the first scan.

From what you’ve described (first scan good, then failure until POS restarts), it sounds like POS is not properly clearing the scan event after it’s received. That’s why resetting POS temporarily fixes it.

A couple of things you might want to try:

  1. Suffix Settings
    You mentioned CR (carriage return) only that’s correct. But in some scanners, toggling between CR-only vs CR+LF can sometimes stabilize the buffer. It’s worth testing both.

  2. Input Mode
    Even though Shopify now supports HID scanners, some merchants report more stable performance when locking the scanner into ASCII vs extended HID input. If your scanner has that option in the manual, test it.

  3. POS Refresh
    Try fully deleting and reinstalling the POS app. Some of the newest updates (after Shopify opened HID compatibility) introduced quirks that weren’t there before. A clean install sometimes helps clear cached configs.

  4. Fallback
    If you’re stuck mid-show/trade, a temporary workaround could be using the scanner into a Notes app, then copy/paste the barcode into POS. Not ideal, but it keeps you moving until a more stable fix is found.

You’re definitely not the only one running into this since the HID update. Might be worth logging it with Shopify Support as well so they can escalate these bugs usually get patched quicker if they’re reproducible.

:backhand_index_pointing_right: Curious: which scanner model are you testing? That might help narrow down if it’s a compatibility quirk vs a general HID issue.

I have tried different suffix settings and, at this point, have tried each in the book after restarting POS, which I had not done before. I am regularly restarting POS when I make any changes.

The manual for this scanner—a Teemi 55CR—is light on details about different scanning modes. The manual does not mention HID at all, but I’m also having difficulty finding any information on how HID differs from standard keyboard emulation. Their programming* manual mentions HID in USB mode, but not bluetooth. * Teemi has not been all that helpful. It’s the standard hardware vs software situation, where each blames the other.

Shopify pointed out that while they sent out that notice, Teemi is not on their list of approved scanners. You know what IS on their list. Socket. That’s it. (And Zebra for Android.)

I have not un-/re-installed POS yet, but will try that when I have a chance. I did try Reset Account in the iPad app settings, and for a brief, shining moment after that, it seemed to work PERFECTLY. Anything I scanned worked, I could scan a legitimately unrecognized barcode (i.e. one that wasn’t in the system, rather than one that was, but threw the error anyway) and then immediately pick up again. Then it stopped. Repeating the same steps has not had the same results, unfortunately.

I read something in one of the search engines/AIs that I might need to add an “inter-scan delay,” but I see no reference to that (or anything similar) in their programming manual.

I appreciate the time and effort you’ve put into this. I don’t need a fallback, as we still have our old Socket, but I appreciate the advice nonetheless.