From 5e3329efee464c4a488ee825345344077de78d83 Mon Sep 17 00:00:00 2001 From: octo-patch Date: Sat, 25 Apr 2026 11:00:09 +0800 Subject: [PATCH] fix(wrappers): guard against undefined Browser.cookies in getChatGptAccessToken In some browser contexts (e.g. Safari, or environments where the cookies permission is unavailable), Browser.cookies can be undefined, causing: "can't access property 'getAll', a.cookies is undefined" chatgpt-web.mjs already uses this guard pattern. Apply the same defensive check before calling Browser.cookies.getAll in getChatGptAccessToken, allowing the session endpoint to be reached without cookies when the API is unavailable. Fixes #912 Co-Authored-By: Octopus --- src/services/wrappers.mjs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/services/wrappers.mjs b/src/services/wrappers.mjs index c828f903..5e9c31f8 100644 --- a/src/services/wrappers.mjs +++ b/src/services/wrappers.mjs @@ -15,11 +15,14 @@ export async function getChatGptAccessToken() { if (userConfig.accessToken) { return userConfig.accessToken } else { - const cookie = (await Browser.cookies.getAll({ url: 'https://chatgpt.com/' })) - .map((cookie) => { - return `${cookie.name}=${cookie.value}` - }) - .join('; ') + let cookie = '' + if (Browser.cookies && Browser.cookies.getAll) { + cookie = (await Browser.cookies.getAll({ url: 'https://chatgpt.com/' })) + .map((cookie) => { + return `${cookie.name}=${cookie.value}` + }) + .join('; ') + } const resp = await fetch('https://chatgpt.com/api/auth/session', { headers: { Cookie: cookie,