Skip to content

App crashes at launch on Expo SDK 54: expo-file-system@18 pin conflicts with the app's expo-file-system 19 #114

Description

@Meldiron

👟 Reproduction steps

npx create-expo-app@latest myapp --template blank-typescript   # Expo SDK 54
cd myapp
npm install react-native-appwrite                              # 0.34.0
npx expo prebuild --platform android --no-install
./android/gradlew -p android assembleRelease
# install and launch the APK on a device/emulator

👎 Actual Behavior

The app crashes immediately at launch:

FATAL EXCEPTION: pool-2-thread-1
Process: io.appwrite.connectqa
java.lang.NoClassDefFoundError: Failed resolution of: Lexpo/modules/filesystem/FilePermissionModule;
    at expo.modules.filesystem.FileSystemPackage.createInternalModules(FileSystemPackage.kt:9)
    at expo.modules.adapters.react.ReactModuleRegistryProvider.get(ReactModuleRegistryProvider.java:47)
    ...

react-native-appwrite@0.34.0 declares a hard dependency:

"dependencies": {
  "expo-file-system": "18.*.*"
}

Expo SDK 54 apps use expo-file-system 19.x, so npm installs a second, nested copy of 18.x under node_modules/react-native-appwrite/. Expo autolinking then mixes the two versions' native code — FilePermissionModule was removed/relocated in 19.x — and module registration dies at startup.

👍 Expected Behavior

The SDK works on current Expo SDK releases. expo-file-system should likely be a peer dependency (or at least a range matching the host app's Expo SDK) instead of a hard 18.*.* pin.

🎲 SDK version

react-native-appwrite 0.34.0, Expo SDK 54, React Native 0.8x, Android (release build)

💭 Additional context

Caught by the Connect snippets QA in appwrite/vibes — the react-native Android lane scaffolds with create-expo-app@latest, adds the SDK, and the built APK crashes before rendering anything (Maestro screenshots show the launcher home screen instead of the app).

🤖 Generated with Claude Code

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