Skip to content
Back

Sessions are not extended/refreshed

  • 0
  • 3
  • Self Hosted
  • React Native
Siv
8 Oct, 2025, 08:46

Appwrite version: 1.6.0 Client version (16.0.2)

Hi, we are having some issues with sessions currently. We would like active users to stay logged in but they are currently getting logged out which is problematic for these users.

I'm currently testing with a session length of 2 minutes. When the user opens the app we extend their session by doing this:

TypeScript
    try {
      const account = new Account(client);
      await account.updateSession('current');
    } catch (error) {
      const err = error as { code?: number };
      if (err.code === 401) {
        handleSessionError(err.code);
      }
    }

This works and I can see within the Appwrite console that the expire time is extended. I've also debugged this by doing:

TypeScript
 const session = await account.getSession('current');

and then logging the session.

Still the session gets invalidated based on the original expire time. So the time of which the session was created. When the original expire time is reached I get an error when doing:

TypeScript
      const client = getClient(apiEndpoint, projectId);
      const account = new Account(client);
      try {
        await account.get();
      } catch (e) {
        console.log('baseQuery error getting account', e);
      }

In the logs I then see:

TypeScript
 LOG  baseQuery error getting account [AppwriteException: User (role: guests) missing scope (account)]

The session is created from a secret from our custom backend server.

TypeScript
await account.createSession(configUser.userId, configUser.authSecret);

Note: I've made sure that the client is only created once in memory, it's then reused so we are not creating a new client multiple times.

Any help/insights would be greatly appreciated!

TL;DR
The user is experiencing issues with session extension using the Appwrite updateSession function. Although the expire time of the current session is changing as expected, the user still gets logged out based on the original expiration time. Another user with a React Native app is facing a similar problem. The solution would be to create a new session with email/password to renew the session as the getSession endpoint does not renew it.
8 Oct, 2025, 11:35

getSession() endpoint simply gets the session, meaning it's not renewing it.

The only way to renew it is creating a new session with email/password, etc.

What's your specific use case?

8 Oct, 2025, 12:50

Hey, thank you for the quick response! I'm trying to extend the session by calling updateSession, not getSession. From my understanding this extends the current session. See method in docs: https://appwrite.io/docs/references/1.6.x/client-react-native/account#updateSession

When I use this it does change the expire time of the current session as expected but I am still logged out based on the original expire time

9 Oct, 2025, 12:07

I have a diagram to show what is currently happening. It shows how our frontend interacts with Appwrite. Hopefully this can give more insights

9 Oct, 2025, 12:08
13 Oct, 2025, 14:33

I did also look into the Appwrite implementation of updateSession but I'm not too familiar with PHP so I couldn't figure it out. Would anyone be able to help me with this issue?

14 Oct, 2025, 08:07

I am having the same thing as far as I can tell also with a React Native app. It doesn't seem to properly update the session even though I see the expiry time increase, the user is still logged out after the initial login/session creation (same as the diagram). Can anyone help? Does anyone have any ideas about what is going wrong?

Reply

Reply to this thread by joining our Discord

Reply on Discord

Need support?

Join our Discord

Get community support by joining our Discord server.

Join Discord

Get premium support

Join Appwrite Pro and get email support from our team.

Learn more