Fission-AI/OpenSpec · error · RootSelectionError
no_registered_stores
no_registered_stores
Error message
Unknown store '${id}'. No stores are registered. What it means
A RootSelectionError with code 'no_registered_stores', thrown in resolveStoreRoot when a store id was requested (via --store, a declaration, or the global default) but the store registry is empty — no stores exist at all. The store id itself may be fine; the registry is the problem.
Solutions
- Run 'openspec store setup <id>' to create and register a new store
- Run 'openspec store register <path>' to register an existing directory as a store
- Verify the global data directory being read is the one you configured stores in
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/core/root-selection.ts:167 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Fission-AI/OpenSpec@6926ccb18a (2026-08-25).
Data as JSON: /api/errors/1dfa0a737ee348e3.
Report an issue: GitHub.
Appendix: source
Thrown at src/core/root-selection.ts:167
): Promise<ResolvedOpenSpecRoot> {
try {
validateStoreId(id);
} catch (error) {
fromStoreError(error);
}
let registry;
try {
registry = await readStoreRegistryState(globalDataDir ? { globalDataDir } : {});
} catch (error) {
fromStoreError(error);
}
const entries = registry ? listStoreRegistryEntries(registry) : [];
const entry = entries.find((candidate) => candidate.id === id);
if (!entry) {
if (entries.length === 0) {
throw new RootSelectionError(
`Unknown store '${id}'. No stores are registered.`,
'no_registered_stores',
{
target: 'store.id',
fix: `Run openspec store setup ${id} or openspec store register <path> first.`,
}
);
}
throw new RootSelectionError(
`Unknown store '${id}'. Registered stores: ${entries
.map((candidate) => candidate.id)
.join(', ')}.`,
'unknown_store',
{
target: 'store.id',
fix: 'Pass a registered store id, or run openspec store list.',
}View on GitHub (pinned to 6926ccb18a)