{"record":{"id":"d86a4e249fe406e9","repo":"ZhuLinsen/daily_stock_analysis","slug":"backend-not-configured","errorCode":"backend_not_configured","errorMessage":"backend_not_configured at configuration for backend {backend}","messagePattern":"backend_not_configured at configuration for backend (.+?)","errorType":"error_code","errorClass":"GenerationError","httpStatus":null,"severity":"error","filePath":"src/services/generation_backend_status_service.py","lineNumber":354,"sourceCode":"            \"mode\": request.mode,\n            \"message\": \"生成后端冒烟测试通过\",\n            \"status\": status,\n        }\n\n    def _primary_backend_id(self) -> str:\n        return normalize_backend_id(self._effective_map.get(\"GENERATION_BACKEND\"), default=LITELLM_BACKEND_ID)\n\n    def _normalize_smoke_request(\n        self,\n        *,\n        backend_id: Optional[str],\n        mode: str,\n        timeout_seconds: Optional[float],\n    ) -> _SmokeRequest:\n        config = self._build_backend_config()\n        requested_backend = normalize_backend_id(backend_id, default=resolve_generation_backend_id(config))\n        if requested_backend not in SUPPORTED_GENERATION_BACKENDS:\n            raise GenerationError(\n                error_code=GenerationErrorCode.BACKEND_NOT_CONFIGURED,\n                stage=\"configuration\",\n                retryable=False,\n                fallbackable=False,\n                backend=requested_backend,\n                details={\n                    \"field\": \"backend_id\",\n                    \"requested_backend\": requested_backend,\n                    \"supported_backends\": sorted(SUPPORTED_GENERATION_BACKENDS),\n                },\n            )\n        normalized_mode = str(mode or \"json\").strip().lower() or \"json\"\n        if normalized_mode not in {\"text\", \"json\"}:\n            raise GenerationError(\n                error_code=GenerationErrorCode.UNSAFE_CONFIG,\n                stage=\"configuration\",\n                retryable=False,\n                fallbackable=False,","sourceCodeStart":336,"sourceCodeEnd":372,"githubUrl":"https://github.com/ZhuLinsen/daily_stock_analysis/blob/5159bd72e8373d215492dff122acc9d389e219c9/src/services/generation_backend_status_service.py#L336-L372","documentation":"Error \"backend_not_configured at configuration for backend {backend}\" thrown in ZhuLinsen/daily_stock_analysis.","triggerScenarios":"Thrown at src/services/generation_backend_status_service.py:354 when the library encounters an invalid state.","commonSituations":"Reported by the generation backend status check when the requested backend has no configuration; occurs when the user probes status for a backend whose API key/base URL was never set.","solutions":["Configure the named generation backend in .env (API key, model, base URL) before enabling it.","Run the backend status/config check to see which required settings are missing.","Remove the backend from the active route list if it is not meant to be used."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5159bd72e8373d215492dff122acc9d389e219c9","analyzedAt":"2026-08-15T01:59:36.292Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}