chenglou/pretext · error · Error
Unknown corpus ${id}. Available corpora: ${sources.map(sourc
Error message
Unknown corpus ${id}. Available corpora: ${sources.map(source => source.id).join(', ')} What it means
`--id` was supplied to the taxonomy script but no entry in `corpora/sources.json` matches it. The error lists valid ids.
Source
Thrown at scripts/corpus-taxonomy.ts:192
const browser = parseBrowser(parseStringFlag('browser'))
const requestedPort = parseNumberFlag('port', Number.parseInt(process.env['CORPUS_CHECK_PORT'] ?? '0', 10))
const timeoutMs = parseNumberFlag('timeout', Number.parseInt(process.env['CORPUS_CHECK_TIMEOUT_MS'] ?? '180000', 10))
const start = parseNumberFlag('start', 300)
const end = parseNumberFlag('end', 900)
const step = parseNumberFlag('step', 10)
const samples = parseOptionalNumberFlag('samples')
const font = parseStringFlag('font')
const lineHeight = parseOptionalNumberFlag('lineHeight')
const id = parseStringFlag('id')
const sources = await loadSources()
if (id === null) {
throw new Error(`Missing --id. Available corpora: ${sources.map(source => source.id).join(', ')}`)
}
const meta = sources.find(source => source.id === id)
if (meta === undefined) {
throw new Error(`Unknown corpus ${id}. Available corpora: ${sources.map(source => source.id).join(', ')}`)
}
const widths = getTargetWidths(meta, start, end, step, samples)
const lock = await acquireBrowserAutomationLock(browser)
const session = createBrowserSession(browser)
let serverProcess: ChildProcess | null = null
try {
const port = await getAvailablePort(requestedPort === 0 ? null : requestedPort)
const pageServer = await ensurePageServer(port, '/corpus', process.cwd())
serverProcess = pageServer.process
const baseUrl = `${pageServer.baseUrl}/corpus`
const entries: TaxonomyEntry[] = []
console.log(`${meta.id} (${meta.language}) — ${meta.title}`)
const requestId = `${Date.now()}-${meta.id}-${Math.random().toString(36).slice(2)}`
const reportServer = await startPostedReportServer<CorpusSweepReport>(requestId)
let url =View on GitHub (pinned to ac49b09b7d)
Solutions
- Copy a valid id verbatim from the error's list.
- If the id should exist, inspect `corpora/sources.json` for a rename or missing entry.
Example fix
// before bun run scripts/corpus-taxonomy.ts --id=ja-kumo // after bun run scripts/corpus-taxonomy.ts --id=ja-kumo-no-ito
Defensive patterns
Strategy: validation
Validate before calling
const validIds = new Set(sources.map(s => s.id))
if (id !== null && !validIds.has(id)) {
console.error(`Unknown corpus ${id}. Available: ${[...validIds].join(', ')}`)
process.exit(2)
} Type guard
const isKnownCorpus = (id: string, sources: CorpusMeta[]): id is string => sources.some(s => s.id === id)
Prevention
- Copy corpus ids verbatim from sources.json.
- Re-check ids after a corpus rename.
When it happens
Trigger: `--id=ja-kumo` (typo/truncation) or an id renamed/removed from sources.json.
Common situations: Typo; stale command after a corpus rename; sources.json out of sync.
Related errors
- Unknown corpus ${options.id}. Available corpora: ${sources.m
- Unknown corpus ${options.id}. Available corpora: ${sources.m
- No font matrix configured for ${options.id}. Available corpo
- Invalid value for --${name}: ${raw}
- Unsupported browser ${browser}; expected chrome or safari
AI-assisted analysis of chenglou/pretext@ac49b09b7d (2026-08-12).
Data as JSON: /api/errors/4d10b0016d14af68.
Report an issue: GitHub.