Skip to content

Commit 57529e0

Browse files
authored
Merge pull request #319 from SolidOS/fix/no-session
no-session
2 parents 1a4b0aa + f818a3f commit 57529e0

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

src/authn/SolidAuthnLogic.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,10 +131,18 @@ export class SolidAuthnLogic implements AuthnLogic {
131131
await withRestoreTimeout(sessionAny.restore())
132132
} catch (error) {
133133
const message = error instanceof Error ? error.message : String(error)
134-
if (!/no session to restore/i.test(message)) {
134+
// A failed restore on an inactive session just means "no usable
135+
// session to restore" — whether that's "No session to restore.",
136+
// a stale refresh token / dead client_id returning HTTP 400, or a
137+
// missing session database. Never let it block the login UI: log
138+
// and continue as logged-out so the page renders the login button.
139+
// Only re-throw when the session actually became active, which is
140+
// an unexpected refresh failure worth surfacing.
141+
const isNowActive = sessionAny?.isActive ?? Boolean(sessionAny?.webId)
142+
if (isNowActive && !/no session to restore/i.test(message)) {
135143
throw error
136144
}
137-
debug.log('No previous session to restore')
145+
debug.log(`Session restore failed, continuing logged-out: ${message}`)
138146
}
139147
const isNowActive = sessionAny?.isActive ?? Boolean(sessionAny?.webId)
140148
if (!wasActive && isNowActive) {

0 commit comments

Comments
 (0)