Next Auth Refresh Session Token is not working

(please help i spend almost one day on this)
i am trying to refetch my session by useSession update function but it's only working in some cases
example 1 (where it is not working)
"use client";

import { useEffect, useRef, useTransition } from "react";
import { useSession } from "next-auth/react";
import { useRouter } from "next/navigation";

export default function UpgradingAccount() {
  const router = useRouter();
  const [isPending, startTransition] = useTransition();
  const { update } = useSession();
  useEffect(() => {
    startTransition(async () => {
      await update();
      router.refresh();
    });
  }, []);
  return <div>loading</div>;
}

example2(where it's working) :-
"use client";

import { useEffect, useRef, useTransition } from "react";
import useUpdateRole from "./useUpdateRole";
import { useSession } from "next-auth/react";
import { useRouter } from "next/navigation";

export default function UpgradingAccount() {
  const ref = useRef<HTMLDivElement>(null);
  const router=useRouter()
  const { update } = useSession();
  useEffect(() => {
    ref.current?.click();
  }, []);
  return (
    <div
      ref={ref}
      onClick={async () => {
        await update();
        router.refresh();
      }}
    >
      loading
    </div>
  );
}
Was this page helpful?