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 `parseBrowser` when the resolved browser is neither `chrome` nor `safari`. The value comes from `--browser=`, falling back to the `CORPUS_CHECK_BROWSER` env var, then `chrome`.
Source
Thrown at scripts/corpus-sweep.ts:114
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 hasFlag(name: string): boolean {
return process.argv.includes(`--${name}`)
}
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 parseOptions(): SweepOptions {
const start = parseNumberFlag('start', 300)
const end = parseNumberFlag('end', 900)
const step = parseNumberFlag('step', 10)
if (step <= 0) throw new Error('--step must be > 0')
if (end < start) throw new Error('--end must be >= --start')
if (parseStringFlag('samples') !== null) {
throw new Error('--samples is obsolete for corpus-sweep; use the default step-based sweep or sampled font-matrix/taxonomy runs instead')
}
View on GitHub (pinned to ac49b09b7d)
Solutions
- Use `--browser=chrome` or `--browser=safari`.
- Unset or correct `CORPUS_CHECK_BROWSER` in your shell.
- For Firefox, use the accuracy/checker paths instead; the corpus sweep/taxonomy scripts intentionally support only chrome and safari.
Example fix
// before CORPUS_CHECK_BROWSER=firefox bun run scripts/corpus-sweep.ts --id=... // after CORPUS_CHECK_BROWSER=chrome bun run scripts/corpus-sweep.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 rather than relying on an env var.
- Remember these corpus scripts support only chrome and safari; use accuracy paths for Firefox.
- Unset CORPUS_CHECK_BROWSER when switching tools to avoid stale values.
When it happens
Trigger: `--browser=firefox` or `CORPUS_CHECK_BROWSER=edge bun run scripts/corpus-sweep.ts ...`.
Common situations: Wanting Firefox coverage (these corpus scripts are chrome/safari only by design); an env var left set by another tool; a typo like `--browser=chrom`.
Related errors
- Unsupported browser ${browser}; expected chrome or safari
- Invalid value for --${name}: ${raw}
- Unsupported browser ${browser}; expected chrome or safari
- Unsupported --method ${requestedMethod}; expected span or ra
- Missing --id. Available corpora: ${sources.map(source => sou
AI-assisted analysis of chenglou/pretext@ac49b09b7d (2026-08-12).
Data as JSON: /api/errors/49abfbe6421b0ea5.
Report an issue: GitHub.