QR codes with Latin-1 encoding can't be read by Collect

Hello. I think may have de same issue. Not native english speaker, so ask IA to explain it:

QR codes readable by phone camera but not detected by Barcode widget in ODK Collect v2026.3.2 (ML Kit scanner)

I'm experiencing an issue with the barcode question type in ODK Collect v2026.3.2.Problem:

  • The phone's native camera app can successfully read the QR codes.
  • However, inside the form (barcode widget), the scanner shows a square with an X icon in the top right corner. Sometimes a brief green checkmark flashes for a millisecond and then disappears.
  • It seems the new ML Kit scanner detects the QR code but fails to decode it.

Additional details:

  • I regenerated the same content with a new QR code and ODK Collect can read the new one without problems. This means the issue is specific to certain printed QR codes.
  • Unfortunately, I already have 2000 printed forms with the problematic QR codes, so reprinting is not feasible.
  • The behavior occurs with the rear camera. Using appearance="front" is not useful because the front camera has low resolution on these devices.
  • Rotating the phone to landscape mode was also tried, without success.

Questions:

  1. Is there any way (via XML, appearance, or settings) to force the old ZXing scanner instead of ML Kit?
  2. Are there known issues with ML Kit and certain printed QR codes (encoding, error correction level, print quality, etc.)?
  3. Any recommended workaround for already printed materials?

I uploaded an example QR codes.

Thank you in advance for any help or suggestions!

Hi @Federico_Gazaba

When you get a chance, please introduce yourself here.

Thanks for all the details you’ve provided. We’re currently investigating the issue, and hopefully we’ll be able to improve the scanning experience soon so that codes like the ones you’re using can be scanned more easily.

Is there any way (via XML, appearance, or settings) to force the old ZXing scanner instead of ML Kit?

There's no easy way to do that. You could try disabling Google Play services, as mentioned above, but you'd need to do it on every device you use - and keep in mind Collect also relies on Play services for location, so that will affect more than just scanning.

I want to clarify that the QR code I included in the previous attachment is not for setting up a project, but is part of a form.

@Grzesiek2010 has confirmed that this has to do with the character encoding of the text the QR code represents. Currently text with accented characters encoded as Latin-1 fails. We are planning to release a fix for this in the next couple of days so that you can use your printed codes. Thanks so much for reporting, @Federico_Gazaba

Thanks to you, I will be waiting for the next version!

Is this the same issue reported here: Some QR codes with non-ASCII contents fail to scan

If those generated codes encode text as Latin-1, then this update should make them scannable. It's rolling out so please give it a try and let us know.

There are still many other text encodings possible so if there are other codes out there that don't scan correctly, please share an example and how they were generated and we'll evaluate what we can do.