Skip to content

Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'QuickBase64' could not be found. Verify that a module by this name is registered in the native binary馃敡聽#1052

Closed

Description

@XI3816-RajeshKumar

How were you trying to build the app?

I am trying to run application on 0.81 react native version, with below package versions:

"react-native-quick-base64": "3.0.0", "react-native-quick-crypto": "^1.1.5", "react-native-nitro-modules": "^0.35.7"
But I am getting below error on application launch.
Image

Full build logs

Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'QuickBase64' could not be found. Verify that a module by this name is registered in the native binary.
    at invariant (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:4051:26)
    at getEnforcing (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:4664:28)
    at anonymous (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:3702:81)
    at loadModuleImplementation (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:275:14)
    at guardedLoadModule (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:182:38)
    at metroRequire (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:96:92)
    at anonymous (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:3567:60)
    at loadModuleImplementation (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:275:14)
    at guardedLoadModule (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:182:38)
    at metroRequire (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:96:92)
    at anonymous (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:1782:43)
    at loadModuleImplementation (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:275:14)
    at guardedLoadModule (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:182:38)
    at metroRequire (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:96:92)
    at anonymous (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:1504:39)
    at loadModuleImplementation (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:275:14)
    at guardedLoadModule (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:182:38)
    at metroRequire (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:96:92)
    at anonymous (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:1306:67)
    at loadModuleImplementation (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:275:14)
    at guardedLoadModule (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:175:47)
    at metroRequire (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:96:92)
    at global (http://10.0.2.2:8081/index.bundle//&platform=android&dev=true&lazy=true&minify=false&app=com.my.package&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server:1098609:4)

Project dependencies

"dependencies": {
"react": "19.1.4",
"react-native": "0.81.6",
"react-native-nitro-modules": "^0.35.7",
"react-native-quick-base64": "3.0.0",
 "react-native-quick-crypto": "^1.1.5",
}

QuickCrypto Version

1.1.5

Target platforms

Android

Operating system

MacOS

Can you build the QuickCrypto Example app?

Yes, I can successfully build the Example app here

Additional information

Activity

  1. abisalde commented on May 31, 2026

    @abisalde

    downgrade your react-native-quick-crypto to

    "react-native-quick-crypto": "1.1.1",

    just did for mine and it working

        "react-native-nitro-modules": "0.35.9",
        "react-native-quick-crypto": "1.1.1",
  2. XI3816-RajeshKumar commented on Jun 1, 2026

    @XI3816-RajeshKumar
    Author

    @abisalde After downgrading, I am started getting below error:

    Image

    Already tried removing node_modules / fresh yarn install / gradle clean. But this error not gone.

  3. MuazzezA commented on Jun 1, 2026

    @MuazzezA

    any update?

  4. abisalde commented on Jun 1, 2026

    @abisalde

    @abisalde After downgrading, I am started getting below error:

    Image

    Already tried removing node_modules / fresh yarn install / gradle clean. But this error not gone.

    This could be due to your react-native version, check the version of nitro against your react-native version and I didn't install react-native-quick-base64

  5. MuazzezA commented on Jun 1, 2026

    @MuazzezA

    use this patch.

    my versions :

    "react-native-quick-base64": "2.2.2",
    "react-native-quick-crypto": "^0.7.17",

    Add ndkVersion rootProject.ext.ndkVersion to android/build.gradle (as shown in patch). I'm using NDK v28 with RN 0.85

    --- a/node_modules/react-native-quick-base64/android/build.gradle
    +++ b/node_modules/react-native-quick-base64/android/build.gradle
    @@ -40,6 +40,7 @@ def resolveBuildType() {
     android {
       namespace 'com.reactnativequickbase64'
     
    +  ndkVersion rootProject.ext.ndkVersion
       compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
     
       defaultConfig {
    
  6. Master-Antonio commented on Jun 2, 2026

    @Master-Antonio

    You can fix adding the version to your package.json waiting they fix.

    "react-native-quick-base64": "^3.0.0",
    
  7. fabrii commented on Jun 14, 2026

    @fabrii

    Are you using Expo 53? I had a similar problem and it was resolved in Expo 54. Check expo/expo#38626

  8. watadarkstar commented on Jun 23, 2026

    @watadarkstar

    I have the same issue with Expo SDK 54

  9. pinge commented on Jul 1, 2026

    @pinge

    Pin react-native-quick-base64 to version 2.2.2 and install react-native-quick-crypto version 1.1.3:

    bun/yarn/npm add react-native-quick-base64@2.2.2
    bun/yarn/npm add react-native-quick-crypto@1.1.3
    cd android
    ./gradlew clean
    
  10. boorad commented on Jul 8, 2026

    @boorad
    Collaborator

    The error comes from react-native-quick-base64, which is a dependency of react-native-quick-crypto, not from react-native-quick-crypto itself. react-native-quick-crypto imports react-native-quick-base64 at startup, so its failure surfaces as a crash when your app launches.

    Why it happens: react-native-quick-base64 3.0.0 was rewritten as a pure C++ TurboModule, which only registers when your app runs on React Native's New Architecture. Version 3.0.0 of react-native-quick-base64 has no Old Architecture registration path, so on an Old Architecture app TurboModuleRegistry.getEnforcing('QuickBase64') fails with "could not be found".

    This matches every report in this thread:

    • Bare RN app on the Old Architecture: fails.
    • Expo SDK 53 (New Architecture off by default): fails. Expo SDK 54 turns it on, which is why upgrading Expo fixes it.
    • Pinning react-native-quick-base64@2.2.2 works, because the 2.x line still ships the legacy Old Architecture module.

    Fixes (pick one):

    1. Enable the New Architecture, then rebuild:
      • Bare RN: set newArchEnabled=true in android/gradle.properties, then cd android && ./gradlew clean and rebuild.
      • Expo: use SDK 54+ (New Architecture is on by default), or enable it explicitly on SDK 53.
    2. Stay on the Old Architecture by pinning react-native-quick-base64@2.2.2.

    Note: the ndkVersion patch posted earlier in this thread targeted the old react-native-quick-base64 2.2.2 android/build.gradle. Version 3.0.0 of react-native-quick-base64 has no build.gradle at all (it is CMake only), so that patch does not apply to 3.0.0.

    Separately, while investigating this I found and fixed an unrelated bug in react-native-quick-base64: building it from source failed because its generated codegen output was gitignored. That fix is in craftzdog/react-native-quick-base64#55, which also adds a README note documenting the New Architecture requirement. It does not affect npm installs, since the published react-native-quick-base64 package already includes the generated code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions