diegosouzapw/OmniRoute · error
models.dev returned invalid JSON (${text.slice(0, 100)}...)
Error message
models.dev returned invalid JSON (${text.slice(0, 100)}...) What it means
Error "models.dev returned invalid JSON (${text.slice(0, 100)}...)" thrown in diegosouzapw/OmniRoute.
Source
Thrown at src/lib/modelsDevSync.ts:189
// Return cached data if still fresh
if (cachedData && Date.now() - cacheTime < CACHE_TTL_MS) {
return cachedData;
}
const response = await fetch(MODELS_DEV_API_URL, {
signal: signal ?? AbortSignal.timeout(30000),
});
if (!response.ok) {
throw new Error(`models.dev fetch failed [${response.status}]: ${response.statusText}`);
}
const text = await response.text();
try {
const data = JSON.parse(text) as ModelsDevData;
cachedData = data;
cacheTime = Date.now();
return data;
} catch {
throw new Error(`models.dev returned invalid JSON (${text.slice(0, 100)}...)`);
}
}
// ─── DB: models.dev pricing namespace ────────────────────
function toRecord(value: unknown): Record<string, unknown> {
return value && typeof value === "object" ? (value as Record<string, unknown>) : {};
}
function mapCapabilityRecord(record: Record<string, unknown>): ModelCapabilityEntry {
return {
tool_call: record.tool_call === 1 ? true : record.tool_call === 0 ? false : null,
reasoning: record.reasoning === 1 ? true : record.reasoning === 0 ? false : null,
attachment: record.attachment === 1 ? true : record.attachment === 0 ? false : null,
structured_output:
record.structured_output === 1 ? true : record.structured_output === 0 ? false : null,
temperature: record.temperature === 1 ? true : record.temperature === 0 ? false : null,
modalities_input: typeof record.modalities_input === "string" ? record.modalities_input : "[]",View on GitHub (pinned to a179ffed5b)
When it happens
Trigger: Thrown at src/lib/modelsDevSync.ts:189 when the library encounters an invalid state.
Common situations: See trigger scenarios.
Understand the failure class
- Parsing and encoding errors: unexpected token, malformed input — why parsers reject input and how to find the real culprit.
AI-assisted analysis of diegosouzapw/OmniRoute@a179ffed5b (2026-08-25).
Data as JSON: /api/errors/fe4daffef6d99df8.
Report an issue: GitHub.