jackwener/OpenCLI · info · EmptyResultError

antigravity idb-list: No IndexedDB databases.

Error message

antigravity idb-list: No IndexedDB databases.

What it means

idb-list calls indexedDB.databases() inside the renderer and throws EmptyResultError when the returned array is missing or empty. It reports that the Antigravity renderer currently has no IndexedDB databases — an informational empty state, not a malfunction. (indexedDB.databases() also returns [] in some browsers that lack the API, handled by the fallback.)

Source

Thrown at clis/antigravity/storage.js:188

            Preview: c.value.slice(0, 40) + (c.value.length > 40 ? '…' : ''),
        }));
    },
});

// ====== Renderer-side: idb-list ======
cli({
    site: 'antigravity',
    name: 'idb-list',
    access: 'read',
    description: 'List IndexedDB databases on the Antigravity renderer.',
    domain: '127.0.0.1',
    strategy: Strategy.UI,
    browser: true,
    args: [],
    columns: STORAGE_COLUMNS,
    func: async (page) => {
        const dbs = unwrapEvaluateResult(await page.evaluate(`(async () => indexedDB.databases ? await indexedDB.databases() : [])()`));
        if (!Array.isArray(dbs) || !dbs.length) throw new EmptyResultError('antigravity idb-list', 'No IndexedDB databases.');
        return dbs.map((d, i) => ({ Index: i + 1, Database: d.name || '(unnamed)', Version: String(d.version || '') }));
    },
});

// ====== FS-side: state-keys ======
cli({
    site: 'antigravity',
    name: 'state-keys',
    access: 'read',
    description: 'List keys in Antigravity\'s globalStorage state.vscdb (VSCode-style). Pass --workspace <id> to query a per-workspace DB. Works while Antigravity is closed.',
    domain: 'localhost',
    strategy: Strategy.LOCAL,
    browser: false,
    args: [
        { name: 'filter', required: false, help: 'Case-insensitive substring filter over keys' },
        { name: 'workspace', required: false, help: 'Workspace id (from workspaces-list) to query per-workspace DB' },
        { name: 'limit', type: 'int', required: false, default: 200, help: 'Max rows to return' },
    ],

View on GitHub (pinned to 49907e53dc)

Solutions

  1. If you want persisted app state, use `opencli antigravity state-keys` / `state-get` (SQLite state.vscdb) instead.
  2. Open the feature in the IDE that creates the IndexedDB store, then re-run.
  3. Confirm you are attached to the correct renderer target/window.
  4. If you expected databases after using the app, check for multiple renderer processes — attach to the right one.

Example fix

// before (looking for app state)
opencli antigravity idb-list
// after
opencli antigravity state-keys
Defensive patterns

Strategy: try-catch

Validate before calling

// App state in Antigravity lives in state.vscdb, not IndexedDB; check that first
const hasDb = require('node:fs').existsSync(process.env.HOME + '/Library/Application Support/Antigravity/User/globalStorage/state.vscdb');
if (!hasDb) console.warn('no state.vscdb — Antigravity may never have run; idb-list would also be empty');

Type guard

function persistedStateLikelyExists() {
  return require('node:fs').existsSync(
    process.env.HOME + '/Library/Application Support/Antigravity/User/globalStorage/state.vscdb'
  );
}

Try / catch

try {
  run('opencli antigravity idb-list');
} catch (e) {
  if (/No IndexedDB databases/.test(e.message)) {
    run('opencli antigravity state-keys'); // app state lives here instead
  } else throw e;
}

Prevention

When it happens

Trigger: Running `opencli antigravity idb-list` on a renderer profile where no code has ever opened an IndexedDB database, or after site data was cleared.

Common situations: Developers expecting VSCode-style workbench data in IndexedDB when Antigravity actually persists state in state.vscdb (SQLite); a clean install with no extensions using IndexedDB.

Related errors


AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29). Data as JSON: /api/errors/3c328ec2de4ed26e. Report an issue: GitHub.