clerk / javascript

Official Javascript repository for Clerk authentication
https://clerk.com
MIT License
957 stars 211 forks source link

I upgraded my app from version Expo SDK 50 to 51 and since then clerk has completely broken #3366

Closed 2salted closed 1 month ago

2salted commented 1 month ago

Preliminary Checks

Reproduction

https://github.com/2salted/WhatsLeft

Publishable key

pk_test_Z3VpZGVkLWJvYXItNC5jbGVyay5hY2NvdW50cy5kZXYk

Description

Steps to reproduce: if you clone my gh repo its a whatsapp clone project and if you run npm install you should be able to run npx expo start (or preferably npx expo start --clear) and then you should be met with the error after building if not go ahead and attempt a sign up and you should see those errors too

Actual behavior:

  1. I run npx expo start --clear (as per usual), I also run my backend but for this it doesnt matter
  2. I take my phone (IOS) and scan the qr code, the app builds and when it loads first its a blank screen and the error is the image below:

error image 1

  1. then it took me 2 days to mess around for me to get rid of this error and it was to remove the token cache.(which isnt a fix but I just wanted to get the page to load)
  2. now after removing token cache the sign in and sign up pages load in which when I try to sign in it says "Not a valid base64 encoded string length" in my console log.
  3. so then i tried sign up which it then says: "shortMessage": "Session already exists", "longMessage": "You're currently in single session mode. You can only be signed into one account at a time." anyways it is safe to say clerk and expo-secure-store is completely broken in my app

Expected behavior: the expected behavior is for the app to firstly load proprely and for when i either sign up or sign in it works just like when it was in expo sdk 50 (less than 2 days ago)

I wrote this really fast since I didn;t have to much time let me know if it makes sense and if its just my code or if clerk is actually broken on SDK 51

Environment

System:
    OS: Linux 6.5 Ubuntu 22.04.4 LTS 22.04.4 LTS (Jammy Jellyfish)
    CPU: (8) x64 AMD Ryzen 7 3700U with Radeon Vega Mobile Gfx
    Memory: 7.19 GB / 9.65 GB
    Container: Yes
    Shell: 5.1.16 - /bin/bash
  Binaries:
    Node: 20.12.1 - ~/.nvm/versions/node/v20.12.1/bin/node
    npm: 10.5.0 - ~/.nvm/versions/node/v20.12.1/bin/npm
    bun: 1.1.1 - ~/.bun/bin/bun
  Browsers:
    Brave Browser: 124.1.65.126
    Chrome: 124.0.6367.118
  npmPackages:
    @babel/core: ^7.20.0 => 7.24.5
    @clerk/clerk-expo: ^0.20.16 => 0.20.18
    @expo/vector-icons: ^14.0.0 => 14.0.1
    @react-navigation/native: ^6.0.2 => 6.1.17
    @types/react: ~18.2.45 => 18.2.79
    expo: ^50.0.17 => 50.0.17
    expo-font: ~11.10.3 => 11.10.3
    expo-image-picker: ~14.7.1 => 14.7.1
    expo-linking: ~6.2.2 => 6.2.2
    expo-router: ~3.4.10 => 3.4.10
    expo-secure-store: ~12.8.1 => 12.8.1
    expo-splash-screen: ~0.26.4 => 0.26.5
    expo-status-bar: ~1.11.1 => 1.11.1
    expo-system-ui: ^2.9.4 => 2.9.4
    expo-web-browser: ~12.8.2 => 12.8.2
    jest: ^29.2.1 => 29.7.0
    jest-expo: ~50.0.4 => 50.0.4
    nativewind: ^2.0.11 => 2.0.11
    react: 18.2.0 => 18.2.0
    react-dom: 18.2.0 => 18.2.0
    react-native: 0.73.6 => 0.73.6
    react-native-safe-area-context: 4.8.2 => 4.8.2
    react-native-screens: ~3.29.0 => 3.29.0
    react-native-web: ~0.19.6 => 0.19.11
    react-test-renderer: 18.2.0 => 18.2.0
    socket.io-client: ^4.7.5 => 4.7.5
    tailwindcss: ^3.3.2 => 3.3.2
    typescript: ^5.1.3 => 5.4.5
2salted commented 1 month ago

let me know if yall got questions

Nahani commented 1 month ago

Hello I have exactly the same issue when upgrading from Expo 50 to 51. Screenshot_2024-05-11-18-06-45-278_com eventapp-edit

System:
    OS: Windows 11 10.0.22631
    CPU: (8) x64 AMD Ryzen 7 3700U with Radeon Vega Mobile Gfx
    Memory: 4.66 GB / 13.95 GB
  Binaries:
    Node: 20.11.1 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.17 - ~\AppData\Roaming\npm\yarn.CMD
    npm: 10.7.0 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Edge: Chromium (123.0.2420.97)
    Internet Explorer: 11.0.22621.3527
  npmPackages:
    @babel/core: ^7.24.0 => 7.24.5
    @clerk/clerk-expo: ^1.1.0 => 1.1.0
    @clerk/types: ^4.2.1 => 4.2.1
    @hookform/resolvers: ^3.3.4 => 3.3.4
    @notifee/react-native: ^7.8.2 => 7.8.2
    @react-native-async-storage/async-storage: 1.23.1 => 1.23.1
    @react-native-community/datetimepicker: 7.7.0 => 7.7.0
    @react-native-community/eslint-config: ^3.2.0 => 3.2.0
    @react-native-community/netinfo: 11.3.1 => 11.3.1
    @react-native-firebase/app: ^19.2.2 => 19.2.2
    @react-native-firebase/messaging: ^19.2.2 => 19.2.2
    @react-navigation/bottom-tabs: ^6.5.14 => 6.5.14
    @react-navigation/native: ^6.1.12 => 6.1.12
    @react-navigation/stack: ^6.3.23 => 6.3.23
    @stream-io/flat-list-mvcp: ^0.10.3 => 0.10.3
    @types/react: ~18.2.79 => 18.2.79
    @typescript-eslint/eslint-plugin: ^7.0.1 => 7.0.1
    @typescript-eslint/parser: ^7.0.1 => 7.0.1
    eslint: ^8.56.0 => 8.56.0
    eslint-config-prettier: ^9.1.0 => 9.1.0
    eslint-plugin-jest: ^27.9.0 => 27.9.0
    eslint-plugin-prettier: ^5.1.3 => 5.1.3
    expo: ~51.0.2 => 51.0.2
    expo-application: ~5.9.1 => 5.9.1
    expo-auth-session: ~5.5.2 => 5.5.2
    expo-constants: ~16.0.1 => 16.0.1
    expo-crypto: ~13.0.2 => 13.0.2
    expo-dev-client: ~4.0.13 => 4.0.13
    expo-file-system: ~17.0.1 => 17.0.1
    expo-image-manipulator: ~12.0.3 => 12.0.3
    expo-image-picker: ~15.0.4 => 15.0.4
    expo-location: ~17.0.1 => 17.0.1
    expo-media-library: ~16.0.3 => 16.0.3
    expo-notifications: ~0.28.1 => 0.28.1
    expo-secure-store: ~13.0.1 => 13.0.1
    expo-status-bar: ~1.12.1 => 1.12.1
    expo-updates: ~0.25.11 => 0.25.11
    expo-web-browser: ~13.0.3 => 13.0.3
    firebase: ^10.8.0 => 10.8.0
    geofire-common: ^6.0.0 => 6.0.0
    lucide-react-native: ^0.334.0 => 0.334.0
    moment: ^2.30.1 => 2.30.1
    prettier: ^3.2.5 => 3.2.5
    react: 18.2.0 => 18.2.0
    react-dom: 18.2.0 => 18.2.0
    react-hook-form: ^7.51.1 => 7.51.1
    react-native: 0.74.1 => 0.74.1
    react-native-animatable: ^1.4.0 => 1.4.0
    react-native-gesture-handler: ~2.16.1 => 2.16.2
    react-native-google-places-autocomplete: ^2.5.6 => 2.5.6
    react-native-maps: 1.14.0 => 1.14.0
    react-native-paper: ^5.12.3 => 5.12.3
    react-native-reanimated: ~3.10.1 => 3.10.1
    react-native-safe-area-context: 4.10.1 => 4.10.1
    react-native-screens: 3.31.1 => 3.31.1
    react-native-svg: 15.2.0 => 15.2.0
    stream-chat-expo: ^5.28.1 => 5.28.1
    typescript: ^5.1.3 => 5.3.3
    zod: ^3.22.4 => 3.22.4
    zustand: ^4.5.1 => 4.5.1
2salted commented 1 month ago

I heard the clerk team has been trying to fix it for the past couple days I have no clue of any deadline tho hopefully soon because this has completely halted my project and its very annoying. let me know if maybe you find a temporary workaround

jetaix commented 1 month ago

same issue, but seems fixed here: https://github.com/clerk/javascript/pull/3354

Nahani commented 1 month ago

Thank you but I still have the issue with the last version 1.1.0.

same issue, but seems fixed here: #3354

2salted commented 1 month ago

Hey Nahani, in the terminal run: "npm i @clerk/clerk-expo@1.0.8-snapshot.v7e206ff --save-exact" this is the commit that has the working changes, I ran this command and it worked right away! good luck!

LekoArts commented 1 month ago

This has been fixed by https://github.com/clerk/javascript/pull/3354 and was published with @clerk/clerk-expo@1.1.0.

Please install the latest version of @clerk/clerk-expo in order to fix your issue:

npm install @clerk/clerk-expo@latest