Use this guide to migrate an integration from SDK 5.17.x to SDK 6.0.0-beta11.
SDK 6 is a beta release with breaking API changes. The biggest changes are the readable-code to barcode terminology migration, new native platform requirements, aligned scan-flow error codes for native and wrapper integrations, the rebuilt iOS custom camera API, and the Android scan flow result contract.
Overall, only iOS custom integrations require a hands-on migration. Most other integrations require small, mechanical updates.
Capacitor is new in SDK 6. If you are adopting it, follow the Capacitor install guide rather than a migration page. If you previously used the Cordova plugin from a Capacitor app, start with the Cordova migration guide.
For wrapper integrations, the native SDK requirements still apply: iOS 15 or later and Android 6.0, API 23 or later. If an older wrapper template or package metadata still shows a lower minimum, use these SDK 6 native minimums.
SDK 6 standardizes the public API on barcode terminology. In practice this affects:
Prefer the new barcode and barcodes names everywhere. Some native dictionary bridges still accept or emit legacy readable-code keys for compatibility, but new application code should not depend on them.
SDK 6 aligns scan-flow error categories across platforms. Native iOS exposes them through GSKScanFlowErrorCode, native Android exposes them through ScanFlowErrorCode, and wrapper integrations expose the same categories as stable string codes or typed wrapper exceptions.
In SDK 5, wrapper integrations did not have one cross-platform cancellation shape. Flutter and React Native could receive com.thegrizzlylabs.gssdk.scanflow.ErrorDomain error 999 on iOS and E_SCAN_CANCELED on Android. Cordova received cancellation message strings. .NET integrations received generic exceptions or NSErrorException. SDK 6 replaces those platform-specific checks with the shared cancellation_error code.
| Error category | String code |
|---|---|
| User canceled the flow | cancellation_error |
| Invalid configuration or input | configuration_error |
| License key invalid, expired, or not initialized | licensing_error |
| Camera or capture failure | capture_error |
| Not enough storage space | storage_space_error |
| Unexpected SDK error | internal_error |
Handle cancellation_error as a normal user action. Treat the other codes as failures and use the platform-specific error payload for the message, recovery message, and underlying error when available.
The Web SDK has its own JavaScript error model and does not expose this native and wrapper string-code taxonomy.
After applying the platform guide, build each target your app ships and run the scan paths your users rely on.
Validate document scanning, barcode scanning if used, structured data extraction if used, generated document output, user cancellation, and at least one non-cancellation error path such as licensing or invalid configuration.
Start with a free trial license to test the SDK, or contact us directly for a custom quote tailored to your needs.
© 2026 The Grizzly Labs. All rights reserved.