Integrating with SvelteKit
The following code works fine,
but when I try to use 
// hooks.server.ts
import { auth } from "$lib/auth";
import { redirect } from "@sveltejs/kit";
import type { Handle } from "@sveltejs/kit";
export const handle: Handle = async ({ event, resolve }) => {
  try {
    // Get session from better-auth
    const sessionData = await auth.api.getSession({
      headers: event.request.headers,
    });
    // Add session to locals for use in load functions
    event.locals.session = sessionData || null;
    event.locals.user = sessionData?.user || null;
    return await resolve(event);
  } catch (error) {
    console.error('Server error:', error);
    
    // Check if this is a database token expiration error
    const errorMessage = (error as any)?.message || error?.toString() || '';
    if (errorMessage.toLowerCase().includes('token') && errorMessage.toLowerCase().includes('expired')) {
      console.log('Database token expired, redirecting to login...');
      
      // Redirect to login page with a message
      throw redirect(302, '/login?error=session_expired');
    }
    
    // Re-throw other errors
    throw error;
  }
};
// hooks.server.ts
import { auth } from "$lib/auth";
import { redirect } from "@sveltejs/kit";
import type { Handle } from "@sveltejs/kit";
export const handle: Handle = async ({ event, resolve }) => {
  try {
    // Get session from better-auth
    const sessionData = await auth.api.getSession({
      headers: event.request.headers,
    });
    // Add session to locals for use in load functions
    event.locals.session = sessionData || null;
    event.locals.user = sessionData?.user || null;
    return await resolve(event);
  } catch (error) {
    console.error('Server error:', error);
    
    // Check if this is a database token expiration error
    const errorMessage = (error as any)?.message || error?.toString() || '';
    if (errorMessage.toLowerCase().includes('token') && errorMessage.toLowerCase().includes('expired')) {
      console.log('Database token expired, redirecting to login...');
      
      // Redirect to login page with a message
      throw redirect(302, '/login?error=session_expired');
    }
    
    // Re-throw other errors
    throw error;
  }
};
svelteKitHandler, page.data.session is always undefined1 Reply
// hooks.server.ts
import { auth } from "$lib/auth";
import { svelteKitHandler } from "better-auth/svelte-kit";
import { building } from "$app/environment";
import { redirect } from "@sveltejs/kit";
import type { Handle } from "@sveltejs/kit";
export const handle: Handle = async ({ event, resolve }) => {
  try {
    // Use svelteKitHandler for better-auth functionality
    const response = await svelteKitHandler({ event, resolve, auth, building });
    
    // Get session from better-auth for additional custom handling
    const sessionData = await auth.api.getSession({
      headers: event.request.headers,
    });
    // Add session to locals for use in load functions
    event.locals.session = sessionData || null;
    event.locals.user = sessionData?.user || null;
    return response;
  } catch (error) {
    console.error('Server error:', error);
    
    // Check if this is a database token expiration error
    const errorMessage = (error as any)?.message || error?.toString() || '';
    if (errorMessage.toLowerCase().includes('token') && errorMessage.toLowerCase().includes('expired')) {
      console.log('Database token expired, redirecting to login...');
      
      // Redirect to login page with a message
      throw redirect(302, '/login?error=session_expired');
    }
    
    // Re-throw other errors
    throw error;
  }
};
// hooks.server.ts
import { auth } from "$lib/auth";
import { svelteKitHandler } from "better-auth/svelte-kit";
import { building } from "$app/environment";
import { redirect } from "@sveltejs/kit";
import type { Handle } from "@sveltejs/kit";
export const handle: Handle = async ({ event, resolve }) => {
  try {
    // Use svelteKitHandler for better-auth functionality
    const response = await svelteKitHandler({ event, resolve, auth, building });
    
    // Get session from better-auth for additional custom handling
    const sessionData = await auth.api.getSession({
      headers: event.request.headers,
    });
    // Add session to locals for use in load functions
    event.locals.session = sessionData || null;
    event.locals.user = sessionData?.user || null;
    return response;
  } catch (error) {
    console.error('Server error:', error);
    
    // Check if this is a database token expiration error
    const errorMessage = (error as any)?.message || error?.toString() || '';
    if (errorMessage.toLowerCase().includes('token') && errorMessage.toLowerCase().includes('expired')) {
      console.log('Database token expired, redirecting to login...');
      
      // Redirect to login page with a message
      throw redirect(302, '/login?error=session_expired');
    }
    
    // Re-throw other errors
    throw error;
  }
};