{"record":{"id":"7705fd99fe1a140d","repo":"BerriAI/litellm","slug":"missing-required-parameters-oci-user-oci-fingerp","errorCode":null,"errorMessage":"Missing required parameters: oci_user, oci_fingerprint, oci_tenancy, oci_compartment_id and at least one of oci_key or oci_key_file. These can be supplied via optional_params or via OCI_USER, OCI_FINGERPRINT, OCI_TENANCY, OCI_COMPARTMENT_ID, OCI_KEY_FILE environment variables. Alternatively, provide an oci_signer object from the OCI SDK.","messagePattern":"Missing required parameters: oci_user, oci_fingerprint, oci_tenancy, oci_compartment_id and at least one of oci_key or oci_key_file\\. These can be supplied via optional_params or via OCI_USER, OCI_FINGERPRINT, OCI_TENANCY, OCI_COMPARTMENT_ID, OCI_KEY_FILE environment variables\\. Alternatively, provide an oci_signer object from the OCI SDK\\.","errorType":"exception","errorClass":"OCIError","httpStatus":401,"severity":"error","filePath":"litellm/llms/oci/chat/transformation.py","lineNumber":424,"sourceCode":"        if not messages:\n            raise OCIError(\n                status_code=400,\n                message=\"kwarg `messages` must be an array of messages that follow the openai chat standard\",\n            )\n        if optional_params.get(\"oci_signer\") is None:\n            creds: Final = resolve_oci_credentials(optional_params)\n            missing: Final = [\n                k\n                for k in (\n                    \"oci_user\",\n                    \"oci_fingerprint\",\n                    \"oci_tenancy\",\n                    \"oci_compartment_id\",\n                )\n                if not creds.get(k)\n            ]\n            if missing or not (creds.get(\"oci_key\") or creds.get(\"oci_key_file\")):\n                raise OCIError(\n                    status_code=401,\n                    message=(\n                        \"Missing required parameters: oci_user, oci_fingerprint, oci_tenancy, \"\n                        \"oci_compartment_id and at least one of oci_key or oci_key_file. \"\n                        \"These can be supplied via optional_params or via OCI_USER, OCI_FINGERPRINT, \"\n                        \"OCI_TENANCY, OCI_COMPARTMENT_ID, OCI_KEY_FILE environment variables. \"\n                        \"Alternatively, provide an oci_signer object from the OCI SDK.\"\n                    ),\n                )\n        return validate_oci_environment(headers, optional_params, api_key)\n\n    def get_complete_url(\n        self,\n        api_base: str | None,\n        api_key: str | None,\n        model: str,\n        optional_params: dict,\n        litellm_params: dict,","sourceCodeStart":406,"sourceCodeEnd":442,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/llms/oci/chat/transformation.py#L406-L442","documentation":"Error \"Missing required parameters: oci_user, oci_fingerprint, oci_tenancy, oci_compartment_id and at least one of oci_key or oci_key_file. These can be supplied via optional_params or via OCI_USER, OCI_FINGERPRINT, OCI_TENANCY, OCI_COMPARTMENT_ID, OCI_KEY_FILE environment variables. Alternatively, provide an oci_signer object from the OCI SDK.\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/llms/oci/chat/transformation.py:424 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Provide oci_user, oci_fingerprint, oci_tenancy, oci_compartment_id, and oci_key or oci_key_file (or an oci_signer)."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d","analyzedAt":"2026-08-15T07:12:03.035Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}