diegosouzapw/OmniRoute · error
INVALID_JSON
INVALID_JSON
Error message
Request body is not valid JSON
What it means
Error "Request body is not valid JSON" thrown in diegosouzapw/OmniRoute.
Source
Thrown at src/app/api/settings/route.ts:292
return NextResponse.json({ error: "Failed to load settings" }, { status: 500 });
}
}
export async function PATCH(request: Request) {
const authError = await requireManagementAuth(request);
if (authError) return authError;
// Derive actor + raw body once so the rejection paths can audit consistently.
const actor = await deriveAuditActor(request);
let rawBody: Record<string, unknown> = {};
try {
rawBody = (await request.json()) as Record<string, unknown>;
} catch {
// Malformed JSON — surface a zod-style failure path so the rejection
// is auditable like every other 400.
emitSettingsFailureAudit(request, actor, "INVALID_JSON", []);
return NextResponse.json(
{ error: { code: "INVALID_JSON", message: "Request body is not valid JSON" } },
{ status: 400 }
);
}
const attemptedKeys = attemptedKeysOf(rawBody);
const expectedRevision = parseExpectedRevision(request, rawBody);
try {
// Zod validation
const validation = validateBody(updateSettingsSchema, rawBody);
if (isValidationFailure(validation)) {
// Detect spawn-capable prefix rejection (spec AC-8) so the audit row
// names the correct error code; otherwise fall back to the generic
// validation-failure label.
const isBypassPrefixRejection = (validation.error.details || []).some(
(d) => typeof d.message === "string" && d.message.includes("BYPASS_PREFIX_NOT_ALLOWED")
);
emitSettingsFailureAudit(
request,View on GitHub (pinned to a179ffed5b)
When it happens
Trigger: Thrown at src/app/api/settings/route.ts:292 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of diegosouzapw/OmniRoute@a179ffed5b (2026-08-25).
Data as JSON: /api/errors/85b81943492496a7.
Report an issue: GitHub.