bytedance/deer-flow · error · AgentNameCheckError
request_failed
request_failed
Error message
Failed to check agent name: ${res.statusText} What it means
Raised when base_url uses plain http://, allow_insecure_http is false, and the URL hostname is not 127.0.0.1, localhost, or openviking. The USER API key travels on every request, so non-local plaintext HTTP is blocked by default; loopback and the service name 'openviking' are whitelisted as inherently private.
Source
Thrown at frontend/src/core/agents/api.ts:118
throw new AgentNameCheckError(
"Could not reach the DeerFlow backend.",
"backend_unreachable",
);
}
if (!res.ok) {
const err = (await res.json().catch(() => ({}))) as { detail?: string };
if (isAgentsApiDisabledDetail(err.detail)) {
throw new AgentsApiDisabledError(err.detail!);
}
if (BACKEND_UNAVAILABLE_STATUSES.has(res.status)) {
throw new AgentNameCheckError(
"Could not reach the DeerFlow backend.",
"backend_unreachable",
);
}
const backendDetail = typeof err.detail === "string" ? err.detail : null;
throw new AgentNameCheckError(
backendDetail ?? `Failed to check agent name: ${res.statusText}`,
"request_failed",
backendDetail,
);
}
return res.json() as Promise<{ available: boolean; name: string }>;
}
View on GitHub (pinned to 1dd6ba1acb)
Solutions
- Use an https:// base_url (TLS at the service or a proxy).
- If the network is trusted and internal, set allow_insecure_http: true explicitly.
- Or point at a whitelisted hostname: http://openviking:1933, http://127.0.0.1:1933, or http://localhost:1933.
Example fix
# before backend_config: base_url: http://10.0.0.5:1933 # after backend_config: base_url: http://10.0.0.5:1933 allow_insecure_http: true # trusted internal network only
Defensive patterns
Strategy: validation
Validate before calling
from urllib.parse import urlparse
LOCAL_HOSTS = {'127.0.0.1', 'localhost', 'openviking'}
def check_http_exposure(base_url: str, allow_insecure: bool) -> None:
p = urlparse(base_url)
if p.scheme == 'http' and not allow_insecure:
assert p.hostname in LOCAL_HOSTS, (
'plain-http base_url to a non-local host requires '
'allow_insecure_http: true on a trusted network; prefer https://'
) Prevention
- Terminate TLS at a proxy for any non-localhost OpenViking deployment.
- Restrict allow_insecure_http: true to dev/lab config overlays that never reach production.
- For local plain-http setups use the whitelisted names openviking, 127.0.0.1, or localhost.
When it happens
Trigger: Setting base_url to http://<non-local-host> (an IP like 10.0.0.5, a LAN hostname, or a k8s service name other than 'openviking') without allow_insecure_http: true. The hostname check uses parsed.hostname, so ports do not matter.
Common situations: Self-hosted OpenViking on another machine without TLS; k8s service URL on plain http with a custom service name; using a private-IP address for a LAN deployment.
Related errors
- Failed to load agents: ${res.statusText}
- backend_unreachable
- Unable to recover SSE history after ${recoveryAttempts} atte
- Failed to submit feedback: ${res.status}
- Failed to delete feedback: ${res.status}
AI-assisted analysis of bytedance/deer-flow@1dd6ba1acb (2026-08-14).
Data as JSON: /api/errors/55aa454f0995d12c.
Report an issue: GitHub.