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

  1. Read the trailing message for the root cause and retry if transient.
  2. Verify connectivity/proxy settings for the browser the CLI drives.
  3. Re-login in the browser in case the failure is session-related.
  4. 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

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


AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29). Data as JSON: /api/errors/e87de4d6d3ca4e2a. Report an issue: GitHub.