diegosouzapw/OmniRoute · error · Error
Existing OpenCode config is invalid JSONC (${detail}); refus
Error message
Existing OpenCode config is invalid JSONC (${detail}); refusing to overwrite it. What it means
Error "Existing OpenCode config is invalid JSONC (${detail}); refusing to overwrite it." thrown in diegosouzapw/OmniRoute.
Source
Thrown at src/shared/services/opencodeConfig.ts:167
input: OpenCodeConfigInput
) => {
const providerConfig = buildOpenCodeProviderConfig(input);
const v2ProviderConfig = buildOpenCodeV2ProviderConfig(input);
const content = typeof existingText === "string" ? existingText : "";
const trimmedContent = content.trim();
if (!trimmedContent) {
return JSON.stringify(buildOpenCodeConfigDocument(input), null, 2);
}
const errors: ParseError[] = [];
const parsed = parse(content, errors, { allowTrailingComma: true, disallowComments: false });
if (errors.length > 0 || !parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
const detail = errors[0]
? `${printParseErrorCode(errors[0].error)} at offset ${errors[0].offset}`
: "root must be an object";
throw new Error(
`Existing OpenCode config is invalid JSONC (${detail}); refusing to overwrite it.`
);
}
let nextText = content;
const schemaEdits = modify(
nextText,
["$schema"],
parsed.$schema || "https://opencode.ai/config.json",
{
formattingOptions: { insertSpaces: true, tabSize: 2 },
}
);
nextText = applyEdits(nextText, schemaEdits);
const providerEdits = modify(nextText, ["provider", "omniroute"], providerConfig, {
formattingOptions: { insertSpaces: true, tabSize: 2 },View on GitHub (pinned to a179ffed5b)
When it happens
Trigger: Thrown at src/shared/services/opencodeConfig.ts:167 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/fa7b4df498e44b8a.
Report an issue: GitHub.