Description
Bug report
- I confirm this is a bug with Supabase, not with my own application.
- I confirm I have searched the Docs, GitHub Discussions, and Discord.
Describe the bug
After strictly following the Build a User Management App with Expo React Native tutorial in the supabase docs and running the web version of the app I was faced with the following error message:
Uncaught TypeError: _index.default is undefined
in Firefox
Uncaught TypeError: Cannot destructure property 'PostgrestClient' of '_index.default' as it is undefined.
in Chrome
This happened only with the web version. When I ran the app in Expo Go on Android it worked perfectly.
I tried to debug the code and narrowed it down to single import statement
import { createClient } from "@supabase/supabase-js";
Only when this import statement is commented out does the error go away.
To Reproduce
- Follow the supabase tutorial here
- Install web dependencies:
npx expo install react-dom react-native-web @expo/metro-runtime
- Run
npm start
in the console and open the localhost url in your browser. - Open the console and view error.
If you want the app to load without the error, continue with the following:
- comment out the createClient import statement and the export statement in supabase.js. Replace the export statement something other than createClient. Your supabase.js should then look something like this:
import AsyncStorage from "@react-native-async-storage/async-storage";
// import { createClient } from "@supabase/supabase-js";
const supabaseUrl = "...";
const supabaseAnonKey = "...";
// export const supabase = createClient(supabaseUrl, supabaseAnonKey, {
// auth: {
// storage: AsyncStorage,
// autoRefreshToken: true,
// persistSession: true,
// detectSessionInUrl: false,
// },
// });
export const supabase = "hello world";
- comment out the useEffect statement in App.tsx:
export default function App() {
const [session, setSession] = useState<Session | null>(null);
// useEffect(() => {
// supabase.auth.getSession().then(({ data: { session } }) => {
// setSession(session);
// });
// supabase.auth.onAuthStateChange((_event, session) => {
// setSession(session);
// });
// }, []);
return (
<View>
{session && session.user ? (
<Account key={session.user.id} session={session} />
) : (
<Auth />
)}
</View>
);
}
- View loaded Account page without the error
Expected behavior
Load the web page fully without the Uncaught TypeError: _index.default is undefined
error message.
System information
- OS: Windows 11
- Browser Firefox and Chrome
- Version of @supabase/supabase-js: 2.44.2
- Version of Node.js: 20.14.0
- Version of Expo: 51.0.17
Additional context
I have only found one other mention of this error from a discord user two days ago here
I have created a stack overflow question here