{"record":{"id":"42e8bea7d5697f44","repo":"bytedance/deer-flow","slug":"unknown-openviking-backend-config-fields","errorCode":null,"errorMessage":"Unknown OpenViking backend_config fields: ","messagePattern":"Unknown OpenViking backend_config fields: ","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"backend/packages/harness/deerflow/agents/memory/backends/openviking/config.py","lineNumber":106,"sourceCode":"            startup_policy=str(cfg.pop(\"startup_policy\", \"fail_fast\")).lower(),  # type: ignore[arg-type]\n            read_failure_policy=str(failure_policy.pop(\"read\", \"fail_open\")).lower(),  # type: ignore[arg-type]\n            write_failure_policy=str(failure_policy.pop(\"write\", \"log_and_drop\")).lower(),  # type: ignore[arg-type]\n            allow_insecure_http=_boolean(\n                cfg.pop(\"allow_insecure_http\", False),\n                \"allow_insecure_http\",\n            ),\n            max_seen_message_ids=int(cfg.pop(\"max_seen_message_ids\", 512)),\n        )\n\n        unknown = sorted(\n            [\n                *cfg,\n                *(f\"retrieval.{key}\" for key in retrieval),\n                *(f\"failure_policy.{key}\" for key in failure_policy),\n            ]\n        )\n        if unknown:\n            raise ValueError(\"Unknown OpenViking backend_config fields: \" + \", \".join(unknown))\n        result._validate()\n        return result\n\n    def _validate(self) -> None:\n        parsed = urlparse(self.base_url)\n        if parsed.scheme not in {\"http\", \"https\"} or not parsed.netloc:\n            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:","sourceCodeStart":88,"sourceCodeEnd":124,"githubUrl":"https://github.com/bytedance/deer-flow/blob/1dd6ba1acb03700589994b0366c5d1c7d05e2eff/backend/packages/harness/deerflow/agents/memory/backends/openviking/config.py#L88-L124","documentation":"Error \"Unknown OpenViking backend_config fields: \" thrown in bytedance/deer-flow.","triggerScenarios":"Thrown at backend/packages/harness/deerflow/agents/memory/backends/openviking/config.py:106 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Remove the unknown fields listed after the colon from the OpenViking backend_config.","Check the OpenViking config documentation for the supported field names."],"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-15T17:31:12.345Z"}