Preliminary Checks
Reproduction
.
Publishable key
pk_test_c3VwZXJiLWtpdC00Ni5jbGVyay5hY2NvdW50cy5kZXYk
Description
When using the expo sdk and the signIn hook, the properties like supportedFirstFactors are always empty. This is needed so I can build by custom login screen similar to the web without hard coding the supported SSO providers.
Steps to reproduce:
Add the hook
const { signIn } = useSignIn();
Step 2
console.log('signIn supported', signIn?.supportedFirstFactors);
Expected behavior:
Should see a list of supported first factors similar to web, where I can run this in the console on the portal page:
Clerk.client.signIn.supportedFirstFactors
Actual behavior:
As a work around I also tried to reload the resource:
useEffect(() => {
console.log('signIn supported', signIn?.supportedFirstFactors);
if (signIn?.supportedFirstFactors?.length === 0) {
void signIn.reload({});
}
}, [signIn?.supportedFirstFactors]);
this results in a GET request (not POST) and fails with status 405.
It seems like it should work similar to the web but I attempted to call this myself since it works with curl but ran afoul of some kind of browser check and can only get 401 responses for some reason.
Environment
Packages: +1
+
Progress: resolved 1, reused 0, downloaded 1, added 1, done
System:
OS: Linux 6.16 Debian GNU/Linux forky/sid
CPU: (32) x64 AMD Ryzen 9 9950X 16-Core Processor
Memory: 17.38 GB / 60.43 GB
Container: Yes
Shell: 5.3.3 - /bin/bash
Binaries:
Node: 20.19.1 - ~/.local/share/mise/installs/node/20.19.1/bin/node
npm: 10.8.2 - ~/.local/share/mise/installs/node/20.19.1/bin/npm
pnpm: 10.18.0 - ~/projects/vinovest/mobile-portfolio-client/node_modules/.bin/pnpm
Deno: 2.4.2 - ~/.local/share/mise/installs/deno/2.4.2/bin/deno
Browsers:
Chrome: 140.0.7339.185
npmPackages:
@babel/core: ^7.20.0 => 7.27.1 @babel/plugin-proposal-unicode-property-regex: ^7.18.6 => 7.18.6 @clerk/clerk-expo: ^2.16.0 => 2.16.0 @fawazahmed/react-native-read-more: ^3.0.3 => 3.0.4 @react-native-async-storage/async-storage: 2.1.2 => 2.1.2 @react-native-community/cli: ^18.0.0 => 18.0.0 @react-native-community/netinfo: 11.4.1 => 11.4.1 @react-native-masked-view/masked-view: 0.3.2 => 0.3.2 @react-navigation/bottom-tabs: ^6.5.20 => 6.6.1 @react-navigation/native: ^6.1.17 => 6.1.18 @react-navigation/native-stack: ^6.9.26 => 6.11.0 @react-navigation/stack: ^6.3.29 => 6.4.1 @reduxjs/toolkit: ^2.2.2 => 2.8.2 @sentry/react-native: ~6.14.0 => 6.14.0 @stripe/stripe-react-native: 0.45.0 => 0.45.0 @types/d3-scale: ^4.0.9 => 4.0.9 @types/d3-shape: ^3.1.7 => 3.1.7 @types/jest: ^29.5.12 => 29.5.14 @types/react: ~19.0.0 => 19.0.14 @types/redux-logger: ^3.0.13 => 3.0.13 axios: ^1.6.8 => 1.12.2 babel-plugin-parameter-decorator: ^1.0.16 => 1.0.16 babel-plugin-root-import: ^6.6.0 => 6.6.0 d3-scale: ^4.0.2 => 4.0.2 d3-shape: ^3.2.0 => 3.2.0 dotenv: ^16.4.7 => 16.5.0 expo: 53.0.23 => 53.0.23 expo-application: ~6.1.5 => 6.1.5 expo-auth-session: ~6.2.1 => 6.2.1 expo-build-properties: ~0.14.8 => 0.14.8 expo-clipboard: ~7.1.5 => 7.1.5 expo-constants: ~17.1.7 => 17.1.7 expo-crypto: ^14.1.5 => 14.1.5 expo-dev-client: ~5.2.4 => 5.2.4 expo-device: ~7.1.4 => 7.1.4 expo-file-system: ~18.1.11 => 18.1.11 expo-font: ~13.3.2 => 13.3.2 expo-insights: ~0.9.3 => 0.9.3 expo-linear-gradient: ~14.1.5 => 14.1.5 expo-linking: ~7.1.7 => 7.1.7 expo-local-authentication: ^16.0.5 => 16.0.5 expo-localization: ~16.1.6 => 16.1.6 expo-secure-store: ~14.2.4 => 14.2.4 expo-splash-screen: ~0.30.10 => 0.30.10 expo-status-bar: ~2.2.3 => 2.2.3 expo-store-review: ~8.1.5 => 8.1.5 expo-tracking-transparency: ~5.2.4 => 5.2.4 expo-updates: ~0.28.17 => 0.28.17 expo-web-browser: ~14.2.0 => 14.2.0 formik: ^2.4.5 => 2.4.6 inversify: ^6.0.2 => 6.2.2 inversify-hooks: ^2.1.6 => 2.1.6 inversify-inject-decorators: ^3.1.0 => 3.1.0 jest: ^29.7.0 => 29.7.0 jest-circus: ^29.7.0 => 29.7.0 jest-junit: ^16.0.0 => 16.0.0 jest-watch-typeahead: ^2.2.2 => 2.2.2 jsonwebtoken: ^9.0.2 => 9.0.2 lottie-react-native: 7.2.2 => 7.2.2 mobx: ^6.13.7 => 6.13.7 mobx-react-lite: ^4.1.0 => 4.1.0 pnpm: ^10.18.0 => 10.18.0 posthog-react-native: ^4.7.0 => 4.7.0 prettier: ^3.2.5 => 3.5.3 react: 19.0.0 => 19.0.0 react-dom: 19.0.0 => 19.0.0 react-native: 0.79.5 => 0.79.5 react-native-animated-spinkit: ^1.5.2 => 1.5.2 react-native-confetti-cannon: ^1.5.2 => 1.5.2 react-native-currency-input: ^1.1.1 => 1.1.1 react-native-gesture-handler: ~2.24.0 => 2.24.0 react-native-intl-phone-field: ^0.3.0 => 0.3.0 react-native-keyboard-aware-scroll-view: ^0.9.5 => 0.9.5 react-native-linear-gradient: ^2.8.3 => 2.8.3 react-native-modalize: ^2.1.1 => 2.1.1 react-native-pager-view: 6.7.1 => 6.7.1 react-native-plaid-link-sdk: ^11.6.0 => 11.13.3 react-native-reanimated: ~3.17.4 => 3.17.5 react-native-redash: ^18.1.3 => 18.1.3 react-native-responsive-linechart: https://github.com/Vinovest/react-native-responsive-linechart/releases/download/v5.7.1-v4/react-native-responsive-linechart-5.7.1-v4.tgz => 5.7.1-v4 react-native-responsive-screen: ^1.4.2 => 1.4.2 react-native-safe-area-context: 5.4.0 => 5.4.0 react-native-screens: ~4.11.1 => 4.11.1 react-native-size-matters: ^0.4.2 => 0.4.2 react-native-skeleton-placeholder: ^5.2.4 => 5.2.4 react-native-svg: 15.11.2 => 15.11.2 react-native-webview: 13.13.5 => 13.13.5 react-query: ^3.39.3 => 3.39.3 react-redux: ^9.1.0 => 9.2.0 redux-logger: ^3.0.6 => 3.0.6 redux-persist: ^6.0.0 => 6.0.0 reflect-metadata: ^0.2.2 => 0.2.2 retry-axios: ^3.1.3 => 3.1.3 typescript: ~5.8.3 => 5.8.3 use-debounce: ^10.0.0 => 10.0.4 yup: ^1.4.0 => 1.6.1 yup-phone: ^1.3.2 => 1.3.2 zod: ^3.24.1 => 3.25.17
Preliminary Checks
I have reviewed the documentation: https://clerk.com/docs
I have searched for existing issues: https://github.com/clerk/javascript/issues
I have not already reached out to Clerk support via email or Discord (if you have, no need to open an issue here)
This issue is not a question, general help request, or anything other than a bug report directly related to Clerk. Please ask questions in our Discord community: https://clerk.com/discord.
Reproduction
.
Publishable key
pk_test_c3VwZXJiLWtpdC00Ni5jbGVyay5hY2NvdW50cy5kZXYk
Description
When using the expo sdk and the signIn hook, the properties like supportedFirstFactors are always empty. This is needed so I can build by custom login screen similar to the web without hard coding the supported SSO providers.
Steps to reproduce:
Add the hook
const { signIn } = useSignIn();Step 2
console.log('signIn supported', signIn?.supportedFirstFactors);Expected behavior:
Should see a list of supported first factors similar to web, where I can run this in the console on the portal page:
Actual behavior:
As a work around I also tried to reload the resource:
this results in a GET request (not POST) and fails with status 405.
It seems like it should work similar to the web but I attempted to call this myself since it works with curl but ran afoul of some kind of browser check and can only get 401 responses for some reason.
Environment