{"record":{"id":"7e2ded0194e4b218","repo":"BerriAI/litellm","slug":"kwarg-oci-serving-mode-must-be-either-on-demand","errorCode":null,"errorMessage":"kwarg `oci_serving_mode` must be either 'ON_DEMAND' or 'DEDICATED'","messagePattern":"kwarg `oci_serving_mode` must be either 'ON_DEMAND' or 'DEDICATED'","errorType":"exception","errorClass":"OCIError","httpStatus":400,"severity":"error","filePath":"litellm/llms/oci/chat/transformation.py","lineNumber":541,"sourceCode":"        litellm_params: dict,\n        headers: dict,\n    ) -> dict:\n        creds: Final = resolve_oci_credentials(optional_params)\n        oci_compartment_id: Final = creds[\"oci_compartment_id\"]\n        if not oci_compartment_id:\n            raise OCIError(\n                status_code=400,\n                message=(\n                    \"oci_compartment_id is required for OCI chat requests. \"\n                    \"Pass it as optional_params or set the OCI_COMPARTMENT_ID env var.\"\n                ),\n            )\n\n        vendor: Final = get_vendor_from_model(model)\n\n        oci_serving_mode: Final = optional_params.get(\"oci_serving_mode\", \"ON_DEMAND\")\n        if oci_serving_mode not in [\"ON_DEMAND\", \"DEDICATED\"]:\n            raise OCIError(\n                status_code=400,\n                message=\"kwarg `oci_serving_mode` must be either 'ON_DEMAND' or 'DEDICATED'\",\n            )\n\n        if oci_serving_mode == \"DEDICATED\":\n            serving_mode = OCIServingMode(\n                servingType=\"DEDICATED\",\n                endpointId=optional_params.get(\"oci_endpoint_id\", model),\n            )\n        else:\n            serving_mode = OCIServingMode(servingType=\"ON_DEMAND\", modelId=model)\n\n        if vendor == OCIVendors.COHERE:\n            user_messages: Final = [m for m in messages if m.get(\"role\") == \"user\"]\n            if not user_messages:\n                raise OCIError(\n                    status_code=400,\n                    message=\"No user message found — Cohere models require at least one user message\",","sourceCodeStart":523,"sourceCodeEnd":559,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/llms/oci/chat/transformation.py#L523-L559","documentation":"Error \"kwarg `oci_serving_mode` must be either 'ON_DEMAND' or 'DEDICATED'\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/llms/oci/chat/transformation.py:541 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set oci_serving_mode to 'ON_DEMAND' or 'DEDICATED'."],"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"}