chenglou/pretext · error · Error
Unsupported browser ${browser}; expected chrome or safari
Error message
Unsupported browser ${browser}; expected chrome or safari What it means
Thrown by the taxonomy script's `parseBrowser` when the resolved browser is neither `chrome` nor `safari`. Resolution order: `--browser=`, then `CORPUS_CHECK_BROWSER` env, then `chrome`.
Source
Thrown at scripts/corpus-taxonomy.ts:84
const raw = parseStringFlag(name)
if (raw === null) return fallback
const parsed = Number.parseInt(raw, 10)
if (!Number.isFinite(parsed)) throw new Error(`Invalid value for --${name}: ${raw}`)
return parsed
}
function parseOptionalNumberFlag(name: string): number | null {
const raw = parseStringFlag(name)
if (raw === null) return null
const parsed = Number.parseInt(raw, 10)
if (!Number.isFinite(parsed)) throw new Error(`Invalid value for --${name}: ${raw}`)
return parsed
}
function parseBrowser(value: string | null): BrowserKind {
const browser = (value ?? process.env['CORPUS_CHECK_BROWSER'] ?? 'chrome').toLowerCase()
if (browser !== 'chrome' && browser !== 'safari') {
throw new Error(`Unsupported browser ${browser}; expected chrome or safari`)
}
return browser
}
async function loadSources(): Promise<CorpusMeta[]> {
return await Bun.file('corpora/sources.json').json()
}
function getTargetWidths(meta: CorpusMeta, start: number, end: number, step: number, samples: number | null): number[] {
const min = Math.max(start, meta.min_width ?? start)
const max = Math.min(end, meta.max_width ?? end)
if (samples !== null) {
if (samples === 1) return [Math.round((min + max) / 2)]
const sampled = new Set<number>()
for (let i = 0; i < samples; i++) {
const ratio = i / (samples - 1)
sampled.add(Math.round(min + (max - min) * ratio))View on GitHub (pinned to ac49b09b7d)
Solutions
- Use `--browser=chrome` or `--browser=safari`.
- Unset or correct `CORPUS_CHECK_BROWSER`.
- For Firefox, use the accuracy/checker paths instead.
Example fix
// before CORPUS_CHECK_BROWSER=firefox bun run scripts/corpus-taxonomy.ts --id=... // after CORPUS_CHECK_BROWSER=chrome bun run scripts/corpus-taxonomy.ts --id=...
Defensive patterns
Strategy: validation
Validate before calling
const raw = (parseStringFlag('browser') ?? process.env['CORPUS_CHECK_BROWSER'] ?? 'chrome').toLowerCase()
if (raw !== 'chrome' && raw !== 'safari') {
console.error(`Unsupported browser ${raw}; expected chrome or safari`)
process.exit(2)
} Type guard
const isSupportedBrowser = (v: string): v is 'chrome' | 'safari' => v === 'chrome' || v === 'safari'
Prevention
- Pin --browser explicitly in CI.
- Unset CORPUS_CHECK_BROWSER when switching tools.
- Use accuracy paths for Firefox coverage.
When it happens
Trigger: `--browser=firefox` or `CORPUS_CHECK_BROWSER=edge bun run scripts/corpus-taxonomy.ts ...`.
Common situations: Wanting Firefox (unsupported by these corpus scripts); stale env var; a typo.
Related errors
- Unsupported browser ${browser}; expected chrome or safari
- Invalid value for --${name}: ${raw}
- Missing --id. Available corpora: ${sources.map(source => sou
- Unknown corpus ${id}. Available corpora: ${sources.map(sourc
- Invalid value for --${name}: ${raw}
AI-assisted analysis of chenglou/pretext@ac49b09b7d (2026-08-12).
Data as JSON: /api/errors/851085c9682d9fc5.
Report an issue: GitHub.