jackwener/OpenCLI · error · CommandExecutionError
Manus ${label} failed: ${value.message || value.__error}
Error message
Manus ${label} failed: ${value.message || value.__error} What it means
CommandExecutionError thrown by requireObject() when the payload carries __error — an in-page/application-level failure that was not an HTTP status error — with the server's message surfaced after 'Manus <label> failed:'.
Source
Thrown at clis/manus/_utils.js:71
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`);
}
return value;
}
export function requireString(value, label) {
const text = String(value ?? '').trim();
if (!text) {
throw new CommandExecutionError(`Manus ${label} returned a malformed API payload`);View on GitHub (pinned to 49907e53dc)
Solutions
- Read the trailing message for the root cause and retry if transient.
- Verify connectivity/proxy settings for the browser the CLI drives.
- Re-login in the browser in case the failure is session-related.
- Update the CLI if Manus changed its internal API/front-end.
Defensive patterns
Strategy: try-catch
Type guard
function isInPageError(v) { return v != null && typeof v === 'object' && v.__error !== undefined; } Try / catch
try {
const data = await manusData();
} catch (e) {
if (/Manus .* failed:/.test(e.message) && !/HTTP \d{3}/.test(e.message)) {
console.error('In-page request failed:', e.message, '— check connectivity and re-login');
} else throw e;
} Prevention
- Verify network/proxy reachability of manus.com from the automated browser.
- Re-login when failures cluster after long sessions.
- Keep the CLI current with Manus front-end changes.
When it happens
Trigger: The injected script catches an exception while calling Manus's API (fetch rejection, JSON parse failure, script-level error) and returns {__error: ...} instead of data.
Common situations: Network interruption mid-request from the browser context, CORS or CSP blocking the in-page fetch, Manus front-end bundle changes breaking the injected call, DNS/proxy failures.
Related errors
- ${label} returned HTTP ${resp.status}: ${summarizeApiError(p
- arXiv API HTTP ${resp.status}
- 获取视频分P信息失败: ${error?.message || error}
- 获取视频信息失败: ${err?.message || err}
- 获取视频播放信息失败: ${err?.message || err}
AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29).
Data as JSON: /api/errors/e87de4d6d3ca4e2a.
Report an issue: GitHub.