jackwener/OpenCLI · error · EmptyResultError
`No visible messages found for conversation ${agentId}/${con
Error message
`No visible messages found for conversation ${agentId}/${convId}. Verify the IDs are correct and that the session belongs to the current login.` What it means
An EmptyResultError from `yuanbao detail` thrown when, after polling the conversation page for ~20 seconds, no message bubbles rendered for the requested agentId/convId. The message guides the user toward the two usual causes: wrong IDs, or the conversation belongs to a different account than the current login. It prevents returning an empty transcript as if it were a real (empty) conversation.
Source
Thrown at clis/yuanbao/detail.js:53
await page.wait(2);
if (await hasLoginGate(page)) {
throw authRequired('Yuanbao opened a login gate when navigating to the conversation.');
}
// Poll up to ~20s for the transcript to render. The page shell loads
// before history is fetched, so a fixed wait races the empty render.
let bubbles = [];
const POLL_DEADLINE_MS = 20_000;
const POLL_INTERVAL_S = 1;
const startedAt = Date.now();
while (Date.now() - startedAt < POLL_DEADLINE_MS) {
bubbles = await getYuanbaoMessageBubbles(page);
if (bubbles.length > 0) break;
await page.wait(POLL_INTERVAL_S);
}
if (!bubbles.length) {
throw new EmptyResultError(
'yuanbao detail',
`No visible messages found for conversation ${agentId}/${convId}. Verify the IDs are correct and that the session belongs to the current login.`,
);
}
return bubbles.map((b) => ({
Role: b.role,
Text: b.role === 'Assistant' && b.html
? (convertYuanbaoHtmlToMarkdown(b.html).trim() || b.text)
: b.text,
}));
},
});
View on GitHub (pinned to 49907e53dc)
Solutions
- Verify the ID is the full chat/<agentId>/<convId> pair (copy the whole conversation URL).
- Confirm the conversation belongs to the account currently logged into the CLI session.
- Re-run once in case rendering was just slow — if it recurs, the IDs/account are wrong.
- List conversations from the same account first and use an ID from that list.
Example fix
// before $ opencli yuanbao detail 3f2a9c... # bare UUID EmptyResultError: No visible messages found... // after $ opencli yuanbao detail "https://yuanbao.tencent.com/chat/<agentId>/<convId>"
Defensive patterns
Strategy: validation
Validate before calling
// Validate ID shape before invoking: must be agentId/convId, not a bare UUID
const m = id.match(/([a-z0-9-]+)\/([a-z0-9-]+)/i);
if (!m) throw new Error('Pass the full chat/<agentId>/<convId> URL or "<agentId>/<convId>" pair'); Type guard
const isConversationRef = (id) => typeof id === 'string' && /^[a-z0-9-]+\/[a-z0-9-]+$/i.test(id.trim());
Try / catch
try {
const msgs = await run(['yuanbao', 'detail', ref]);
} catch (e) {
if (e.name === 'EmptyResultError') {
// wrong IDs or wrong account: re-list conversations for the current login
const convos = await run(['yuanbao', 'list']);
return pickAndRetry(convos);
}
throw e;
} Prevention
- Always copy the full conversation URL, never just the UUID
- Confirm the conversation belongs to the currently logged-in account
- List conversations first and select an ID from that output
- Retry once for slow renders before concluding the IDs are wrong
When it happens
Trigger: Running `yuanbao detail <url-or-id>` with a mistyped or truncated ID pair (a bare UUID instead of agentId/convId), a conversation deleted or belonging to another WeChat account, or the transcript failing to render within the 20s poll window.
Common situations: Copying only the convId UUID instead of the full chat URL; switching accounts so the session can't see the conversation; referencing a conversation from a colleague's account; slow page loads exceeding the poll deadline.
Related errors
- 1point3acres thread
- 1point3acres user
- amazon ${definition.commandName} did not expose any ranked i
- amazon search did not expose any product cards
- No posts found in this Band
AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29).
Data as JSON: /api/errors/215d1341a975f1bd.
Report an issue: GitHub.