jackwener/OpenCLI · error · EmptyResultError
No sidebar conversation matched "${raw}". Try the exact id f
Error message
No sidebar conversation matched "${raw}". Try the exact id from `opencli gemini history` instead. What it means
After skipping direct id-shaped handling, resolveTargetUrl looks up the sidebar conversation list and matches by title (contains mode). If no matching conversation with a Url is found, it throws EmptyResultError with a message suggesting the exact id from `opencli gemini history`. The library throws this rather than navigating to a guessed URL, so a wrong title fails fast with an actionable hint.
Source
Thrown at clis/gemini/detail.js:43
}
// Unambiguously id-shaped inputs (URL, /app/<id> path, or 16-hex bare id)
// skip the sidebar lookup. Generic alphanumeric strings always go through
// title-matching first so a chat called "Empire study" doesn't get treated
// as the literal conversation id "Empire study".
const directId = extractGeminiId(raw);
const looksLikeId =
raw.startsWith('http') ||
raw.startsWith('/app/') ||
/^[a-f0-9]{16,}$/i.test(raw);
if (directId && looksLikeId) {
return `${GEMINI_APP_URL}/${directId}`;
}
const conversations = await getGeminiConversationList(page);
const match = resolveGeminiConversationForQuery(conversations, raw, 'contains');
if (!match || !match.Url) {
throw new EmptyResultError(
'gemini detail',
`No sidebar conversation matched "${raw}". Try the exact id from \`opencli gemini history\` instead.`,
);
}
return match.Url;
}
export const detailCommand = cli({
site: 'gemini',
name: 'detail',
access: 'read',
description: 'Open a Gemini web conversation by id, URL, or sidebar title and read its turns',
domain: GEMINI_DOMAIN,
strategy: Strategy.COOKIE,
browser: true,
siteSession: 'persistent',
navigateBefore: false,
args: [View on GitHub (pinned to 49907e53dc)
Solutions
- Run `opencli gemini history` and use the exact Id or Url of the target conversation as --id
- Verify the title spelling or use a shorter distinctive substring of the title
- Confirm you are signed into the same Google account that owns the conversation
- If the chat is old, open Gemini in the browser to confirm it still exists before retrying
Example fix
// before opencli gemini detail --id "Empire studie" // after opencli gemini history # find exact Id/Url opencli gemini detail --id abc123def4567890
Defensive patterns
Strategy: fallback
Validate before calling
const hist = await run(['gemini','history','--limit','200']);
const found = hist.find(c => c.Title.includes(titleFragment));
if (!found) throw new Error(`No conversation matching "${titleFragment}" in history`); Type guard
function isConversationMatch(m){ return Boolean(m && typeof m.Url === 'string' && m.Url.length > 0); } Try / catch
try {
return await run(['gemini','detail','--id', title]);
} catch (e) {
if (String(e.message).includes('No sidebar conversation matched')) {
const hist = await run(['gemini','history']);
const exact = hist.find(c => c.Id === title || c.Url === title);
if (exact) return await run(['gemini','detail','--id', exact.Url]);
}
throw e;
} Prevention
- Prefer the exact Id or Url from `gemini history` over free-text titles
- Watch for renamed/deleted conversations; refresh history before lookup
- Confirm you are on the same Google account that owns the chat
When it happens
Trigger: Calling `opencli gemini detail` with --id set to a sidebar title that does not exist (typo, deleted/renamed chat, or chat not visible in Recents); passing a non-16-hex generic string that matches no conversation; the Gemini account/sidebar has no conversation with that substring.
Common situations: The conversation was renamed or deleted since the title was captured; querying on a different Google account than where the chat lives; the chat is old and outside the visible Recents list; partial-title typos.
Related errors
- Session not found: ${uid}
- No prices returned for train_no=${trainNo} ${fromStation.nam
- No 12306 stations match "${keyword}"
- bilibili creator-stats ${bvid}
- Chess.com returned 404 for ${url}
AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29).
Data as JSON: /api/errors/556cc2e7cc55de03.
Report an issue: GitHub.