{"record":{"id":"dd4a69240ecde26c","repo":"BerriAI/litellm","slug":"param-key-is-not-supported-on-oci","errorCode":null,"errorMessage":"param `{key}` is not supported on OCI","messagePattern":"param `(.+?)` is not supported on OCI","errorType":"exception","errorClass":"OCIError","httpStatus":400,"severity":"error","filePath":"litellm/llms/oci/chat/transformation.py","lineNumber":357,"sourceCode":"        for key, value in {**non_default_params, **optional_params}.items():\n            alias = param_map.get(key)\n            if alias is False:\n                # max_retries is a litellm-level control param (litellm applies\n                # retries itself); it is never a generation param OCI accepts, so\n                # drop it silently. The litellm proxy injects it on every request,\n                # which otherwise 500s OCI calls unless drop_params is set.\n                if key == \"max_retries\":\n                    continue\n                # n=1 (or None) is the OpenAI default: a single generation, which\n                # every OCI model produces anyway. Drop it silently so standard\n                # clients that always send n=1 (e.g. the MLflow gateway) are not\n                # rejected; only n>1 is genuinely unsupported on Cohere, which\n                # has no numGenerations field.\n                if key == \"n\" and (value is None or value == 1):\n                    continue\n                if drop_params or litellm.drop_params:\n                    continue\n                raise OCIError(\n                    status_code=400,\n                    message=f\"param `{key}` is not supported on OCI\",\n                )\n            if alias is None:\n                adapted_params[key] = value\n                continue\n            adapted_params[alias] = value\n            # Preserve the original OpenAI ``response_format`` key alongside the\n            # OCI-mapped ``responseFormat`` so downstream litellm framework code\n            # (e.g. ``json_mode`` detection, logging) that inspects\n            # ``optional_params[\"response_format\"]`` continues to work.\n            if alias == \"responseFormat\":\n                adapted_params[\"response_format\"] = value\n\n        return adapted_params\n\n    def sign_request(\n        self,","sourceCodeStart":339,"sourceCodeEnd":375,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/llms/oci/chat/transformation.py#L339-L375","documentation":"Error \"param `{key}` is not supported on OCI\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/llms/oci/chat/transformation.py:357 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Remove the unsupported parameter for OCI or set drop_params=True."],"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-15T17:31:12.345Z"}