jackwener/OpenCLI · error · AuthRequiredError
Authentication required — please sign in to Manus in the bro
Error message
Authentication required — please sign in to Manus in the browser
What it means
AuthRequiredError thrown by requireObject() when the in-page payload contains __authRequired, meaning Manus's site JS reported the user is not signed in. The message is taken from the payload or defaults to this sign-in prompt for the manus.com domain.
Source
Thrown at clis/manus/_utils.js:64
}
return payload;
}
function extractErrorMessage(payload) {
if (!payload || typeof payload !== 'object') return '';
const candidates = [
payload.message,
payload.error,
payload.errorMessage,
payload.details,
];
return candidates.find((value) => typeof value === 'string' && value.trim())?.trim() || '';
}
export function requireObject(payload, label) {
const value = unwrapEvaluateResult(payload);
if (value?.__authRequired) {
throw new AuthRequiredError(MANUS_DOMAIN, value.message || 'Authentication required — please sign in to Manus in the browser');
}
if (value?.__httpError) {
const message = extractErrorMessage(value);
throw new CommandExecutionError(message ? `Manus ${label} failed (HTTP ${value.__httpError}): ${message}` : `Manus ${label} failed (HTTP ${value.__httpError})`);
}
if (value?.__error) {
throw new CommandExecutionError(`Manus ${label} failed: ${value.message || value.__error}`);
}
if (!value || typeof value !== 'object' || Array.isArray(value)) {
throw new CommandExecutionError(`Manus ${label} returned a malformed API payload`);
}
return value;
}
export function requireArray(value, label) {
if (!Array.isArray(value)) {
throw new CommandExecutionError(`Manus ${label} returned a malformed API payload`);
}View on GitHub (pinned to 49907e53dc)
Solutions
- Open manus.com in the automated/browser profile and sign in.
- Re-run the command after confirming the dashboard loads in that same browser.
- Clear stale cookies and log in again if the session is corrupt.
- Check you are pointing the CLI at the correct browser profile with Manus cookies.
Defensive patterns
Strategy: try-catch
Type guard
function isAuthRequired(v) { return v != null && typeof v === 'object' && v.__authRequired === true; } Try / catch
try {
const data = await manusData();
} catch (e) {
if (e instanceof AuthRequiredError || /Authentication required/.test(e.message)) {
console.error('Open manus.com in the browser and sign in, then re-run.');
process.exitCode = 1;
} else throw e;
} Prevention
- Check Manus login state in the target browser profile before batch runs.
- Re-authenticate periodically; cookies expire.
- Ensure the CLI drives the same browser profile that holds your Manus session.
When it happens
Trigger: Any manus command (data, connectors, sessions, skills, user) whose browser-evaluate call returns {__authRequired: true} because Manus API responses are 401 without a valid session.
Common situations: Session cookie expired, logged out in the browser, using a fresh browser profile the CLI can't see cookies from, Manus rotating auth requiring re-login.
Understand the failure class
- Authentication and authorization failures — expired tokens, bad credentials, and missing scopes.
Related errors
- Browser session required for bilibili follow
- Browser session required for bilibili following
- Xianyu search requires a logged-in browser session
- ${config.site} login
- Band band_session cookie missing
AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29).
Data as JSON: /api/errors/9699c44dc9027b70.
Report an issue: GitHub.