jackwener/OpenCLI · info · EmptyResultError
No sessions found.
Error message
No sessions found.
What it means
The manus list command fetches sessions via the Manus API and throws EmptyResultError when, after optionally filtering out archived sessions, the resulting array is empty. The API call succeeded; the account simply has no sessions matching the filter.
Source
Thrown at clis/manus/list.js:54
const limit = validatedLimit(kwargs?.limit, 20, 200);
const includeArchived = kwargs?.archived === true;
await ensureOnManus(page);
const data = requireObject(await page.evaluate(`(async () => {
${MANUS_API_CALL_JS}
return callManusAPI('session.v1.SessionService/ListSessions', {
page: 1,
pageSize: ${limit},
});
})()`), 'list sessions');
let sessions = requireArray(data.sessions, 'list sessions');
if (!includeArchived) {
sessions = sessions.filter((s) => !s.isArchived);
}
if (!sessions.length) {
throw new EmptyResultError('manus list', 'No sessions found.');
}
return sessions.slice(0, limit).map((s, index) => ({
id: requireString(s?.uid, `list session ${index + 1}`),
Title: (s.title || '—').slice(0, 80),
Status: shortStatus(s.status),
'Last Message': (s.lastDisplayMessage || '—').slice(0, 80),
'Last Updated': formatTime(s.updatedAt),
Credits: String(s.costedCredits ?? '0'),
}));
},
});
View on GitHub (pinned to 49907e53dc)
Solutions
- Create a session/task in the Manus web UI, then rerun the command
- Pass the include-archived flag/option so archived sessions are not filtered out and rerun
- Verify you are signed into the expected account (check user_id via the auth command)
- If sessions exist but the error persists, inspect the ListSessions RPC response to confirm the `sessions` key still holds the array
Example fix
// before
if (!includeArchived) {
sessions = sessions.filter((s) => !s.isArchived);
}
// after (caller avoids the throw by requesting archived sessions too)
const sessions = await manusList({ includeArchived: true }); Defensive patterns
Strategy: fallback
Try / catch
try {
const sessions = await manusList({});
} catch (e) {
if (e instanceof EmptyResultError) {
return []; // no (non-archived) sessions — normal state
}
throw e;
} Prevention
- Pass includeArchived when you suspect all sessions may be archived
- Handle EmptyResultError as an expected outcome for new accounts
- Verify the authenticated user before diagnosing empty lists as bugs
- Catch EmptyResultError before broader error types so empty results don't trigger retries
When it happens
Trigger: Running `manus list` on an account with no sessions at all, or running it without the includeArchived flag when every existing session is archived (the isArchived filter empties the array).
Common situations: New Manus account with no tasks/sessions created yet; all previous sessions were archived so the default (non-archived) view is empty; querying the wrong account/workspace; a Manus change moved sessions under a different key so the filter runs against a different array.
Understand the failure class
Background: EmptyResultError / "no results found": when an API or scraper succeeds but returns zero rows — this error's family across 9 libraries.
Related errors
- No keys match "${flt}".
- midjourney history
- 没有匹配的商品(筛选条件可能过窄,或当前关键词无结果)
- No holdings matched account filter: ${filter}
- No prices returned for train_no=${trainNo} ${fromStation.nam
AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29).
Data as JSON: /api/errors/c4952f896a3127d3.
Report an issue: GitHub.