{"record":{"id":"ef7d63c2cf1a1098","repo":"BerriAI/litellm","slug":"scaleway-api-key-not-found-pass-api-key-or","errorCode":null,"errorMessage":"Scaleway API key not found. Pass `api_key=...` or set the SCW_SECRET_KEY environment variable.","messagePattern":"Scaleway API key not found\\. Pass `api_key=\\.\\.\\.` or set the SCW_SECRET_KEY environment variable\\.","errorType":"http","errorClass":"ScalewayAudioTranscriptionException","httpStatus":401,"severity":"error","filePath":"litellm/llms/scaleway/audio_transcription/transformation.py","lineNumber":85,"sourceCode":"            status_code=status_code,\n            headers=headers,\n        )\n\n    def validate_environment(\n        self,\n        headers: dict,\n        model: str,\n        messages: list[AllMessageValues],\n        optional_params: dict,\n        litellm_params: dict,\n        api_key: str | None = None,\n        api_base: str | None = None,\n    ) -> dict:\n        if api_key is None:\n            api_key = get_secret_str(\"SCW_SECRET_KEY\")\n\n        if not api_key:\n            raise ScalewayAudioTranscriptionException(\n                message=(\n                    \"Scaleway API key not found. Pass `api_key=...` or set the SCW_SECRET_KEY environment variable.\"\n                ),\n                status_code=401,\n                headers={},\n            )\n\n        default_headers: Final = {\n            \"Authorization\": f\"Bearer {api_key}\",\n            \"accept\": \"application/json\",\n        }\n        default_headers.update(headers or {})\n        return default_headers\n\n    def transform_audio_transcription_request(\n        self,\n        model: str,\n        audio_file: FileTypes,","sourceCodeStart":67,"sourceCodeEnd":103,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/llms/scaleway/audio_transcription/transformation.py#L67-L103","documentation":"Scaleway audio transcription credential guard: no API key was passed via api_key and the SCW_SECRET_KEY environment variable is unset/empty, so ScalewayAudioTranscriptionException is raised before any request is sent.","triggerScenarios":"Triggered when calling Scaleway audio transcription without an API key: api_key not passed and SCW_SECRET_KEY unset.","commonSituations":"See trigger scenarios.","solutions":["Set the SCW_SECRET_KEY environment variable.","Or pass api_key=... to the transcription call."],"exampleFix":"litellm.transcription(model=\"scaleway/...\", api_key=\"<scw-secret>\", file=...)","handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8","analyzedAt":"2026-08-18T11:44:31.656Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}