jackwener/OpenCLI · error · CommandExecutionError
weibo delete returned an unexpected response
Error message
weibo delete returned an unexpected response
What it means
clis/weibo/delete.js:164 throws CommandExecutionError('weibo delete returned an unexpected response') as the final fallback: the script's result object was neither ok nor matched any known error code. This guards against contract drift between the injected page script and the Node-side handler (requireObjectEvaluateResult/unwrapEvaluateResult).
Source
Thrown at clis/weibo/delete.js:164
return { ok: true, id: idstr, mblogid };
}
return { ok: false, error: 'verify_mismatch', msg: 'verify returned a different post id', id: idstr };
})()
`)), 'weibo delete');
if (result.error === 'auth') {
throw new AuthRequiredError('weibo.com', 'Cookie 已过期!请在当前 Chrome 浏览器中重新登录 Weibo。');
}
if (result.error === 'not_found') {
throw new EmptyResultError('weibo delete', `Post not found for id "${String(result.input ?? raw)}". Verify the post still exists and belongs to the logged-in account.`);
}
if (result.error === 'show_http' || result.error === 'destroy_http' || result.error === 'verify_http') {
throw new CommandExecutionError(`weibo delete: HTTP ${result.status}`);
}
if (result.error === 'api' || result.error === 'verify_malformed' || result.error === 'verify_mismatch' || result.error === 'still_exists') {
throw new CommandExecutionError(`weibo delete: ${String(result.msg ?? result.error)}`);
}
if (!result.ok) {
throw new CommandExecutionError('weibo delete returned an unexpected response');
}
return [{ status: 'deleted', id: String(result.id ?? ''), mblogid: String(result.mblogid ?? '') }];
},
});
export const __test__ = {
normalizePostId,
};
View on GitHub (pinned to 49907e53dc)
Solutions
- Re-run with a clean Chrome profile and extensions disabled to rule out interference
- Update the CLI to the latest version so the in-page script and handler are in sync
- Log the raw result (enable debug output) to see what the page script actually returned
- If reproducible, file a bug with the raw result payload
Example fix
// before: opaque failure
await cli.run('weibo delete', { id });
// after: capture context
try {
await cli.run('weibo delete', { id });
} catch (e) {
if (/unexpected response/.test(e.message)) console.error('update the CLI / disable extensions; raw result shape unknown');
throw e;
} Defensive patterns
Strategy: fallback
Type guard
function isUnexpectedDeleteResponse(e) { return e instanceof Error && e.message === 'weibo delete returned an unexpected response'; } Try / catch
try {
await cli.run('weibo delete', { id });
} catch (e) {
if (isUnexpectedDeleteResponse(e)) {
console.error('Unknown delete response — update CLI, disable extensions, and re-run once.');
// do not retry in a loop; contract-level failure
}
throw e;
} Prevention
- Keep the CLI and its in-page scripts at one version
- Run with a clean profile and minimal extensions
- Enable debug logging to capture the raw result when it recurs
- Report reproducible cases upstream with the raw payload
When it happens
Trigger: The evaluate() result has ok:false (or is shaped unexpectedly) without an error field the handler recognizes — e.g. the page script threw and returned a bare message, a Chrome extension interfered, or the CLI and its in-page script versions diverge.
Common situations: Mixing CLI versions after an update; browser extensions or anti-bot overlays breaking script execution; Chrome DevTools Protocol returning an exception object instead of the expected result shape.
Related errors
- weibo delete: ${String(result.msg ?? result.error)}
- String(data.error)
- message
- weibo user-posts returned malformed extraction payload
- String(data.error)
AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29).
Data as JSON: /api/errors/e1ee1f05aa3a63b0.
Report an issue: GitHub.