ruvnet/ruflo · error
[arch] router returned error
Error message
[arch] router returned error
What it means
Log warning in archSelectRoute: the arch router HTTP call returned a non-OK status; the message (OpenAI-style error body if present, otherwise status text) is extracted so routing can degrade to the failure/fallback route.
Source
Thrown at ruflo/src/ruvocal/src/lib/server/router/arch.ts:196
});
clearTimeout(to);
if (!resp.ok) {
// Extract error message from response
let errorMessage = `arch-router ${resp.status}`;
try {
const errorData = await resp.json();
// Try to extract message from OpenAI-style error format
if (errorData.error?.message) {
errorMessage = errorData.error.message;
} else if (errorData.message) {
errorMessage = errorData.message;
}
} catch {
// If JSON parsing fails, use status text
errorMessage = resp.statusText || errorMessage;
}
logger.warn(
{ status: resp.status, error: errorMessage, traceId },
"[arch] router returned error"
);
return {
routeName: "arch_router_failure",
error: {
message: errorMessage,
statusCode: resp.status,
},
};
}
const data: { choices: { message: { content: string } }[] } = await resp.json();
const text = (data?.choices?.[0]?.message?.content ?? "").toString().trim();
const raw = parseRouteName(text);
const other = config.LLM_ROUTER_OTHER_ROUTE || "casual_conversation";
const chosen = raw === "other" ? other : raw || "casual_conversation";View on GitHub (pinned to fa13ee4ad6)
Solutions
- Check the router's upstream model catalog is reachable and loaded; retry after the model list loads successfully.
- Inspect router logs for the underlying selection error and fix the failing candidate/endpoint.
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at ruflo/src/ruvocal/src/lib/server/router/arch.ts:196 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of ruvnet/ruflo@fa13ee4ad6 (2026-08-18).
Data as JSON: /api/errors/f1e131666b93661e.
Report an issue: GitHub.