{"record":{"id":"6aa228068420378d","repo":"bytedance/deer-flow","slug":"openviking-retrieval-max-injection-chars-must-be-b","errorCode":null,"errorMessage":"OpenViking retrieval.max_injection_chars must be between 256 and 100000","messagePattern":"OpenViking retrieval\\.max_injection_chars must be between 256 and 100000","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"backend/packages/harness/deerflow/agents/memory/backends/openviking/config.py","lineNumber":131,"sourceCode":"            raise ValueError(\"OpenViking base_url must be an absolute http(s) URL\")\n        if parsed.scheme == \"http\" and not self.allow_insecure_http and parsed.hostname not in {\"127.0.0.1\", \"localhost\", \"openviking\"}:\n            raise ValueError(\"OpenViking plain HTTP is allowed only for localhost/openviking; set allow_insecure_http=true only for a trusted internal network\")\n        if not self.owner_user_id:\n            raise ValueError(\"OpenViking owner_user_id must not be empty\")\n        if not self.api_key:\n            raise ValueError(f\"OpenViking USER API key is missing; set {self.api_key_env}\")\n        if not is_safe_peer_id(self.default_peer_id):\n            raise ValueError(\"OpenViking default_peer_id must start with a lowercase letter or digit and contain at most 64 lowercase letters, digits, '_' or '-'\")\n        if self.default_peer_id.startswith(GENERATED_PEER_PREFIX):\n            raise ValueError(f\"OpenViking default_peer_id must not start with the reserved prefix {GENERATED_PEER_PREFIX!r}\")\n        if not isfinite(self.timeout_seconds) or self.timeout_seconds <= 0:\n            raise ValueError(\"OpenViking timeout_seconds must be a finite value > 0\")\n        if not 1 <= self.search_top_k <= 100:\n            raise ValueError(\"OpenViking retrieval.top_k must be between 1 and 100\")\n        if self.score_threshold is not None and (not isfinite(self.score_threshold) or not 0 <= self.score_threshold <= 1):\n            raise ValueError(\"OpenViking retrieval.score_threshold must be a finite value between 0 and 1\")\n        if not 256 <= self.max_injection_chars <= 100_000:\n            raise ValueError(\"OpenViking retrieval.max_injection_chars must be between 256 and 100000\")\n        if self.content_mode not in {\"auto\", \"abstract\", \"overview\", \"read\"}:\n            raise ValueError(\"OpenViking retrieval.content_mode must be auto, abstract, overview, or read\")\n        if not self.injection_query:\n            raise ValueError(\"OpenViking retrieval.injection_query must not be empty\")\n        if self.startup_policy not in {\"fail_fast\", \"warn\"}:\n            raise ValueError(\"OpenViking startup_policy must be 'fail_fast' or 'warn'\")\n        if self.read_failure_policy not in {\"fail_open\", \"raise\"}:\n            raise ValueError(\"OpenViking failure_policy.read must be 'fail_open' or 'raise'\")\n        if self.write_failure_policy not in {\"log_and_drop\", \"raise\"}:\n            raise ValueError(\"OpenViking failure_policy.write must be 'log_and_drop' or 'raise'\")\n        if not 16 <= self.max_seen_message_ids <= 10_000:\n            raise ValueError(\"OpenViking max_seen_message_ids must be between 16 and 10000\")\n\n\ndef is_safe_peer_id(value: str) -> bool:\n    \"\"\"Return whether *value* is valid for an OpenViking actor peer.\"\"\"\n\n    return _SAFE_PEER_RE.fullmatch(value) is not None","sourceCodeStart":113,"sourceCodeEnd":149,"githubUrl":"https://github.com/bytedance/deer-flow/blob/1dd6ba1acb03700589994b0366c5d1c7d05e2eff/backend/packages/harness/deerflow/agents/memory/backends/openviking/config.py#L113-L149","documentation":"Error \"OpenViking retrieval.max_injection_chars must be between 256 and 100000\" thrown in bytedance/deer-flow.","triggerScenarios":"Thrown at backend/packages/harness/deerflow/agents/memory/backends/openviking/config.py:131 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set retrieval.max_injection_chars between 256 and 100000.","Remove the field to use the default injection budget."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"1dd6ba1acb03700589994b0366c5d1c7d05e2eff","analyzedAt":"2026-08-14T21:20:34.804Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}