@@ -38,6 +38,7 @@ interface AuthState {
3838 tokenExpiry : number | null ; // Unix timestamp in milliseconds
3939 cloudRegion : CloudRegion | null ;
4040 storedTokens : StoredTokens | null ;
41+ staleTokens : StoredTokens | null ;
4142
4243 // PostHog client
4344 isAuthenticated : boolean ;
@@ -66,6 +67,7 @@ export const useAuthStore = create<AuthState>()(
6667 tokenExpiry : null ,
6768 cloudRegion : null ,
6869 storedTokens : null ,
70+ staleTokens : null ,
6971
7072 // PostHog client
7173 isAuthenticated : false ,
@@ -126,6 +128,10 @@ export const useAuthStore = create<AuthState>()(
126128 projectId,
127129 } ) ;
128130
131+ trpcVanilla . agent . updateToken
132+ . mutate ( { token : tokenResponse . access_token } )
133+ . catch ( ( err ) => log . warn ( "Failed to update agent token" , err ) ) ;
134+
129135 // Clear any cached data from previous sessions AFTER setting new auth
130136 queryClient . clear ( ) ;
131137
@@ -191,15 +197,24 @@ export const useAuthStore = create<AuthState>()(
191197 } ) ;
192198
193199 if ( ! result . success || ! result . data ) {
194- // Network errors should retry, auth errors should logout immediately
195- if ( result . errorCode === "network_error" ) {
200+ // Network/server errors should retry, auth errors should logout immediately
201+ if (
202+ result . errorCode === "network_error" ||
203+ result . errorCode === "server_error"
204+ ) {
196205 log . warn (
197- `Token refresh network error (attempt ${ attempt + 1 } ): ${ result . error } ` ,
206+ `Token refresh ${ result . errorCode } (attempt ${ attempt + 1 } /${ REFRESH_MAX_RETRIES } ): ${ result . error } ` ,
207+ ) ;
208+ lastError = new Error (
209+ result . error || "Token refresh failed" ,
198210 ) ;
199211 continue ; // Retry
200212 }
201213
202214 // Auth error or unknown - logout
215+ log . error (
216+ `Token refresh failed with ${ result . errorCode } : ${ result . error } ` ,
217+ ) ;
203218 get ( ) . logout ( ) ;
204219 throw new Error ( result . error || "Token refresh failed" ) ;
205220 }
@@ -244,6 +259,12 @@ export const useAuthStore = create<AuthState>()(
244259 ...( projectId && { projectId } ) ,
245260 } ) ;
246261
262+ trpcVanilla . agent . updateToken
263+ . mutate ( { token : tokenResponse . access_token } )
264+ . catch ( ( err ) =>
265+ log . warn ( "Failed to update agent token" , err ) ,
266+ ) ;
267+
247268 get ( ) . scheduleTokenRefresh ( ) ;
248269 return ; // Success
249270 } catch ( error ) {
@@ -263,7 +284,9 @@ export const useAuthStore = create<AuthState>()(
263284 }
264285
265286 // All retries exhausted
266- log . error ( "Token refresh failed after all retries" ) ;
287+ log . error (
288+ `Token refresh failed after all retries: ${ lastError ?. message || "Unknown error" } ` ,
289+ ) ;
267290 get ( ) . logout ( ) ;
268291 throw lastError || new Error ( "Token refresh failed" ) ;
269292 } ;
@@ -384,6 +407,12 @@ export const useAuthStore = create<AuthState>()(
384407 projectId,
385408 } ) ;
386409
410+ trpcVanilla . agent . updateToken
411+ . mutate ( { token : currentTokens . accessToken } )
412+ . catch ( ( err ) =>
413+ log . warn ( "Failed to update agent token" , err ) ,
414+ ) ;
415+
387416 get ( ) . scheduleTokenRefresh ( ) ;
388417
389418 // Use distinct_id to match web sessions (same as PostHog web app)
@@ -457,12 +486,15 @@ export const useAuthStore = create<AuthState>()(
457486
458487 useNavigationStore . getState ( ) . navigateToTaskInput ( ) ;
459488
489+ const currentTokens = get ( ) . storedTokens ;
490+
460491 set ( {
461492 oauthAccessToken : null ,
462493 oauthRefreshToken : null ,
463494 tokenExpiry : null ,
464495 cloudRegion : null ,
465496 storedTokens : null ,
497+ staleTokens : currentTokens ,
466498 isAuthenticated : false ,
467499 client : null ,
468500 projectId : null ,
@@ -475,6 +507,7 @@ export const useAuthStore = create<AuthState>()(
475507 partialize : ( state ) => ( {
476508 cloudRegion : state . cloudRegion ,
477509 storedTokens : state . storedTokens ,
510+ staleTokens : state . staleTokens ,
478511 projectId : state . projectId ,
479512 } ) ,
480513 } ,
0 commit comments