jackwener/OpenCLI · error · EmptyResultError
NotebookLM guide was not available for source "${matched.tit
Error message
NotebookLM guide was not available for source "${matched.title}". What it means
opencli notebooklm source-guide throws this EmptyResultError when the source row matched, but getNotebooklmSourceGuideViaRpc returned null (it failed or produced no guide, after .catch(() => null)). NotebookLM may not have generated an Audio Overview/FAQ-style guide for that source, or the guide RPC was unavailable.
Source
Thrown at clis/notebooklm/source-guide.js:42
await requireNotebooklmSession(page);
const state = await getNotebooklmPageState(page);
if (state.kind !== 'notebook') {
throw new EmptyResultError('opencli notebooklm source-guide', 'No NotebookLM notebook is open in the adapter session. Run `opencli notebooklm open <notebook>` first.');
}
const rpcRows = await listNotebooklmSourcesViaRpc(page).catch(() => []);
const rows = rpcRows.length > 0 ? rpcRows : await listNotebooklmSourcesFromPage(page);
if (rows.length === 0) {
throw new EmptyResultError('opencli notebooklm source-guide', 'No NotebookLM sources were found on the current page.');
}
const query = typeof kwargs.source === 'string' ? kwargs.source : String(kwargs.source ?? '');
const matched = findNotebooklmSourceRow(rows, query);
if (!matched) {
throw new EmptyResultError('opencli notebooklm source-guide', `Source "${query}" was not found in the current notebook.`);
}
const guide = await getNotebooklmSourceGuideViaRpc(page, matched).catch(() => null);
if (guide)
return [guide];
throw new EmptyResultError('opencli notebooklm source-guide', `NotebookLM guide was not available for source "${matched.title}".`);
},
});
View on GitHub (pinned to 49907e53dc)
Solutions
- Retry the command after a short delay to let NotebookLM generate the guide or clear a transient RPC failure.
- Confirm the source opens correctly in the NotebookLM web UI and that a guide exists there.
- Reopen the notebook (`opencli notebooklm open <notebook>`) to refresh the session, then retry; if persistent, update opencli for NotebookLM changes.
Example fix
// before opencli notebooklm source-guide --source "New Doc" # guide not yet generated // after sleep 30 && opencli notebooklm open "Product Docs" && opencli notebooklm source-guide --source "New Doc"
Defensive patterns
Strategy: retry
Validate before calling
const guide = await exec(`opencli notebooklm source-guide --source ${JSON.stringify(title)} --json`).catch(() => null);
if (!guide) console.warn('Guide unavailable yet; will retry after generation delay'); Type guard
function hasGuide(guide) {
return guide != null && typeof guide === 'object' && (typeof guide.summary === 'string' || Array.isArray(guide.faq));
} Try / catch
let guide = null;
for (let attempt = 0; attempt < 3 && !guide; attempt++) {
try {
guide = await run('opencli notebooklm source-guide', ['--source', title]);
} catch (err) {
if (/guide was not available/.test(err.message) && attempt < 2) {
await delay(15000 * (attempt + 1));
continue;
}
throw err;
}
} Prevention
- Wait after adding a new source before requesting its guide (generation is async on Google's side).
- Retry with backoff on guide-unavailable errors.
- Confirm in the NotebookLM web UI that a guide exists for the source.
- Keep opencli updated for NotebookLM RPC/protocol changes.
When it happens
Trigger: Guide for the matched source was never generated by NotebookLM, the guide RPC call failed (network/auth/server error swallowed by the catch), or NotebookLM's guide data shape changed so parsing returned nothing.
Common situations: Very recently added source whose guide hasn't been computed yet; transient Google-side RPC failure; adapter outdated after a NotebookLM protocol change; account lacks access to the guide feature.
Related errors
- opencli notebooklm current
- notebooklm generate-audio
- notebooklm generate-slides
- opencli notebooklm get
- opencli notebooklm history
AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29).
Data as JSON: /api/errors/03f2235e524a06d9.
Report an issue: GitHub.