jackwener/OpenCLI · info · EmptyResultError
No IndexedDB databases.
Error message
No IndexedDB databases.
What it means
EmptyResultError thrown by kimi idb-list when indexedDB.databases() returns an empty array, a non-array, or is unavailable (the script returns [] when indexedDB.databases is missing). It means no IndexedDB databases exist on the Kimi origin.
Source
Thrown at clis/kimi/storage.js:165
site: 'kimi',
name: 'idb-list',
access: 'read',
description: 'List IndexedDB databases on kimi.com.',
domain: KIMI_DOMAIN,
strategy: Strategy.COOKIE,
browser: true,
siteSession: 'persistent',
navigateBefore: false,
args: [],
columns: STORAGE_COLUMNS,
func: async (page) => {
await ensureOnKimi(page);
const dbs = await page.evaluate(`(async () => {
if (!indexedDB.databases) return [];
return await indexedDB.databases();
})()`);
if (!Array.isArray(dbs) || !dbs.length) {
throw new EmptyResultError('kimi idb-list', 'No IndexedDB databases.');
}
return dbs.map((d, i) => ({ Index: i + 1, Database: d.name || '(unnamed)', Version: String(d.version || '') }));
},
});
View on GitHub (pinned to 49907e53dc)
Solutions
- Confirm in DevTools (Application > IndexedDB) that databases exist on this origin
- Check localStorage instead (kimi storage keys) if the app may not use IndexedDB
- Upgrade the browser/automation context if indexedDB.databases is unavailable
- Trigger the app feature that creates the database, then re-run the command
Example fix
// before
await kimi(['storage', 'idb-list']); // throws if no IDB
// after
const keys = await kimi(['storage', 'keys']);
if (keys.length) {
// data lives in web storage, not IndexedDB
} else {
await kimi(['storage', 'idb-list']);
} Defensive patterns
Strategy: fallback
Validate before calling
const keys = await kimi(['storage', 'keys']);
if (keys.length) console.warn('data is in web storage, IndexedDB likely empty'); Type guard
const hasDatabases = (dbs) => Array.isArray(dbs) && dbs.length > 0;
Try / catch
try {
return await kimi(['storage', 'idb-list']);
} catch (e) {
if (/No IndexedDB databases/.test(e.message)) {
// fall back to web storage inspection
return await kimi(['storage', 'keys']);
}
throw e;
} Prevention
- Check DevTools Application > IndexedDB before automating
- Inspect localStorage/sessionStorage first for Kimi data
- Use a current browser version supporting indexedDB.databases()
- Avoid incognito contexts that restrict storage
When it happens
Trigger: Running `kimi storage idb-list` on a fresh Kimi origin where no IndexedDB has been created, in a browser/context lacking indexedDB.databases() (older browsers), or in a private/incognito context that blocks storage.
Common situations: Assuming Kimi uses IndexedDB when it stores everything in localStorage, running against a brand-new browser profile, or older WebView/browser versions without the databases() API.
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
- antigravity idb-list: No IndexedDB databases.
- No chats visible in sidebar. Are you logged in?
- No messages found in /chat/${id}.
- No chat turns found on current page.
- No assistant message visible.
AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29).
Data as JSON: /api/errors/24ddd6ec8532caac.
Report an issue: GitHub.