bytedance/deer-flow · error · ValueError
OpenViking {name} must be a boolean
Error message
OpenViking {name} must be a boolean What it means
The _boolean() helper in the OpenViking config parser rejects a value that is neither a bool nor a recognized boolean string. It is only used for memory.backend_config.allow_insecure_http. Accepted inputs: true/false (YAML booleans) and the case-insensitive strings 'true','1','yes','on' / 'false','0','no','off'.
Source
Thrown at backend/packages/harness/deerflow/agents/memory/backends/openviking/config.py:173
if not isinstance(value, dict):
raise ValueError(f"OpenViking {name} must be a mapping")
return dict(value)
def _optional_float(value: Any) -> float | None:
return None if value is None else float(value)
def _boolean(value: Any, name: str) -> bool:
if isinstance(value, bool):
return value
if isinstance(value, str):
normalized = value.strip().lower()
if normalized in {"true", "1", "yes", "on"}:
return True
if normalized in {"false", "0", "no", "off"}:
return False
raise ValueError(f"OpenViking {name} must be a boolean")
View on GitHub (pinned to 1dd6ba1acb)
Solutions
- Set allow_insecure_http: true or false (plain YAML boolean) in memory.backend_config
- If a string is unavoidable, use one of true/1/yes/on or false/0/no/off (case-insensitive)
- Restart the Gateway after the config edit
Example fix
# before (config.yaml)
memory:
backend_config:
allow_insecure_http: enabled # not recognized
# after
memory:
backend_config:
allow_insecure_http: true Defensive patterns
Strategy: validation
Validate before calling
val = raw_backend_config.get("allow_insecure_http", False)
valid_strings = {"true", "1", "yes", "on", "false", "0", "no", "off"}
ok = isinstance(val, bool) or (isinstance(val, str) and val.strip().lower() in valid_strings)
assert ok, "allow_insecure_http must be a boolean (true/false)" Type guard
def is_valid_openviking_boolean(value: object) -> bool:
if isinstance(value, bool):
return True
return isinstance(value, str) and value.strip().lower() in {"true", "1", "yes", "on", "false", "0", "no", "off"} Prevention
- Write allow_insecure_http as a plain YAML boolean (true/false)
- Avoid creative spellings like 'enabled'/'y' in config files
- Only enable it for trusted internal networks, per the HTTP-scheme check it feeds
When it happens
Trigger: Setting memory.backend_config.allow_insecure_http to an unrecognized value such as 'maybe', 'trusted', an integer other than 0/1 strings (e.g. 2), or a YAML string like 'TRUE ' is fine after strip/lower but 'y', 'enabled' fail. Raised during OpenVikingConfig.from_backend_config.
Common situations: Typing allow_insecure_http: yes!! or 'y' in config.yaml, or passing a YAML-quoted value like "enabled" copied from other tools' configs.
Related errors
- OpenViking startup_policy must be 'fail_fast' or 'warn'
- OpenViking failure_policy.read must be 'fail_open' or 'raise
- OpenViking failure_policy.write must be 'log_and_drop' or 'r
- OpenViking max_seen_message_ids must be between 16 and 10000
- OpenViking {name} must be a mapping
AI-assisted analysis of bytedance/deer-flow@1dd6ba1acb (2026-08-14).
Data as JSON: /api/errors/190ad61eee20aff0.
Report an issue: GitHub.