jackwener/OpenCLI · warning · EmptyResultError
antigravity storage-keys: No keys match "${flt}".
Error message
antigravity storage-keys: No keys match "${flt}". What it means
storage-keys fetched all keys from the chosen store on the renderer, applied the case-insensitive substring --filter, and found zero matching keys. EmptyResultError signals an empty (filtered) result set rather than a failure — the command ran fine but nothing matched "<flt>".
Source
Thrown at clis/antigravity/storage.js:105
{ name: 'limit', type: 'int', required: false, default: 100, help: 'Max rows to return' },
],
columns: STORAGE_COLUMNS,
func: async (page, kwargs) => {
const s = String(kwargs?.storage || 'local').trim().toLowerCase();
if (s !== 'local' && s !== 'session') throw new ArgumentError('storage', 'must be "local" or "session"');
const store = s === 'session' ? 'sessionStorage' : 'localStorage';
const raw = unwrapEvaluateResult(await page.evaluate(`(() => {
const s = ${store};
const out = [];
for (let i = 0; i < s.length; i++) {
const k = s.key(i); const v = s.getItem(k) || '';
out.push({ k, bytes: v.length });
}
return out;
})()`));
const flt = kwargs?.filter ? String(kwargs.filter).toLowerCase() : null;
const filtered = flt ? raw.filter((r) => r.k.toLowerCase().includes(flt)) : raw;
if (!filtered.length) throw new EmptyResultError('antigravity storage-keys', flt ? `No keys match "${flt}".` : `${store} is empty.`);
filtered.sort((a, b) => a.k.localeCompare(b.k));
const limit = Number.isInteger(kwargs?.limit) && kwargs.limit > 0 ? kwargs.limit : 100;
return filtered.slice(0, limit).map((r, i) => ({ Index: i + 1, Key: r.k, Bytes: r.bytes }));
},
});
// ====== Renderer-side: storage-get ======
cli({
site: 'antigravity',
name: 'storage-get',
access: 'read',
description: 'Read a single localStorage / sessionStorage value on the Antigravity renderer.',
domain: '127.0.0.1',
strategy: Strategy.UI,
browser: true,
args: [
{ name: 'key', positional: true, required: true, help: 'Storage key name' },
{ name: 'storage', required: false, default: 'local', help: '"local" or "session"' },View on GitHub (pinned to 49907e53dc)
Solutions
- Run without --filter to list all keys, then grep the output.
- Shorten the filter to a distinctive substring that definitely appears in the key.
- Check the other store: add --storage session (or drop it for local).
- Confirm the renderer has actually loaded the state that sets the keys (open the relevant panel in Antigravity).
Example fix
// before opencli antigravity storage-keys --filter myExtension.settings // after opencli antigravity storage-keys --filter myextension
Defensive patterns
Strategy: fallback
Validate before calling
// Confirm matching keys exist before filtering
const all = execSync('opencli antigravity storage-keys --storage local', {encoding:'utf8'});
if (!all.toLowerCase().includes(filter.toLowerCase())) console.warn(`filter "${filter}" matches nothing; listing all keys instead`); Type guard
function hasMatchingKey(keys, filter) {
return Array.isArray(keys) && keys.some((k) => typeof k === 'string' && k.toLowerCase().includes(String(filter).toLowerCase()));
} Try / catch
try {
run('opencli antigravity storage-keys --filter ' + flt);
} catch (e) {
if (/No keys match/.test(e.message)) {
run('opencli antigravity storage-keys'); // unfiltered fallback
} else throw e;
} Prevention
- Run unfiltered first to discover the real key namespace/prefixes.
- Keep filters short (a distinctive substring), not full key names.
- Remember the filter applies to the store selected by --storage.
- Treat EmptyResultError as informational, not a failure.
When it happens
Trigger: Running `opencli antigravity storage-keys --filter myapp` when no localStorage/sessionStorage key on the current renderer page contains the substring 'myapp' (case-insensitively), or filtering the wrong store (filter applies to the store selected by --storage).
Common situations: Antigravity stores keys under vendor prefixes (workbench.*, vscode.*, auth.*) while the user filters for their extension's key; searching sessionStorage when the data lives in localStorage; the page was freshly reloaded and keys were cleared.
Related errors
- antigravity state-keys: No keys match "${flt}".
- No keys match "${flt}".
- storage must be "local" or "session"
- Key not found in ${store}: ${key}
- antigravity cookies: document.cookie is empty.
AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29).
Data as JSON: /api/errors/057f2322879c77a0.
Report an issue: GitHub.