jackwener/OpenCLI · warning · AuthRequiredError
Waiting for Boss wt2 / t cookies
Error message
Waiting for Boss wt2 / t cookies
What it means
The boss auth poll callback throws AuthRequiredError with 'Waiting for Boss wt2 / t cookies' when, during the polling window after the user is sent to the login page, the browser still has no 'wt2' or 't' cookie. This is the poll-loop signal that login has not completed yet. The poller typically keeps retrying until the cookie appears or the timeout expires.
Source
Thrown at clis/boss/auth.js:46
}
return { ok: true, user_type: userType };
})()
`);
if (probe?.kind === 'auth') throw new AuthRequiredError('zhipin.com', probe.detail);
if (!probe?.ok) throw new CommandExecutionError(`Unexpected Boss probe: ${JSON.stringify(probe)}`);
return { user_type: probe.user_type };
}
registerSiteAuthCommands({
site: 'boss',
domain: 'zhipin.com',
loginUrl: 'https://login.zhipin.com/',
columns: ['user_type'],
quickCheck: hasBossSessionCookie,
verify: verifyBossIdentity,
poll: async (page) => {
if (!await hasBossSessionCookie(page)) {
throw new AuthRequiredError('zhipin.com', 'Waiting for Boss wt2 / t cookies');
}
return verifyBossIdentity(page);
},
});
export const __test__ = {
BOSS_GEEK_JOBS_URL,
verifyBossIdentity,
};
View on GitHub (pinned to 49907e53dc)
Solutions
- Complete the login in the opened browser window (scan QR code / enter SMS code) before the poll timeout expires
- Re-run the login command if the window closed or timed out; you get a fresh polling window
- Confirm the browser window used for login is the CLI-managed automation profile, not your personal browser
- If cookies are set but not seen, check cookie domain scope for wt2/t in DevTools and ensure no cookie-blocking extensions are active
Example fix
// before: closed login window, poll times out // after: keep the automation window open and finish verification await opencli login boss; // then scan the QR code in the opened window // poll succeeds once wt2/t cookie lands
Defensive patterns
Strategy: retry
Validate before calling
// Before waiting on the poll, confirm the login page is actually open
const url = page.url();
if (!url.includes('login.zhipin.com') && !url.includes('zhipin.com')) {
console.warn('not on zhipin login; user cannot complete login');
} Type guard
function cookiesArrived(cookies) {
return Array.isArray(cookies) &&
cookies.some(c => c.name === 'wt2' || c.name === 't');
} Try / catch
try {
await waitForBossLogin(page, { timeoutMs: 120000 });
} catch (err) {
if (err instanceof AuthRequiredError && err.message.includes('Waiting for Boss')) {
// login not completed within window — prompt and retry once
await promptUser('Finish the QR/SMS login in the automation browser, then press Enter');
return waitForBossLogin(page, { timeoutMs: 120000 });
}
throw err;
} Prevention
- Keep the automation browser visible and do not close it during login polling
- Complete QR/SMS verification promptly; use a generous poll timeout for manual login
- Ensure cookie-blocking extensions or privacy settings are off for zhipin.com
- Confirm the CLI-managed profile is the one being logged into, not a personal browser
When it happens
Trigger: During the interactive login flow (registerSiteAuthCommands poll): the user has not finished login (no SMS/QR verification), login is on a different browser profile/window, or the login page failed to set cookies because of a network/verification failure while polling continues.
Common situations: User slow to complete QR-code or SMS verification before poll timeout; automation browser window closed accidentally; login blocked by captcha; cookies set on a different domain variant (e.g. .zhipin.com subdomain mismatch) so getCookies({url:'https://www.zhipin.com'}) doesn't see them.
Related errors
- Waiting for Facebook c_user cookie
- Waiting for Instagram sessionid cookie
- Waiting for Nowcoder login
- Waiting for Twitter/X auth cookies
- Waiting for V2EX A2 session cookie
AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29).
Data as JSON: /api/errors/06dd0a925d876ac0.
Report an issue: GitHub.