{"record":{"id":"2257061b02e487fd","repo":"BerriAI/litellm","slug":"oci-only-supports-function-tools","errorCode":null,"errorMessage":"OCI only supports function tools","messagePattern":"OCI only supports function tools","errorType":"validation","errorClass":"OCIError","httpStatus":400,"severity":"error","filePath":"litellm/llms/oci/chat/generic.py","lineNumber":222,"sourceCode":"            new_messages.append(adapt_messages_to_generic_oci_standard_tool_response(role, tool_call_id, content))\n\n    return new_messages\n\n\n# ---------------------------------------------------------------------------\n# Tool definition adaptation\n# ---------------------------------------------------------------------------\n\n\ndef adapt_tool_definition_to_oci_standard(tools: list[dict], vendor: OCIVendors) -> list[OCIToolDefinition]:\n    \"\"\"Convert OpenAI-format tool definitions to OCI GENERIC format.\n\n    Resolves ``$ref``/``$defs`` and ``anyOf`` that the OCI endpoint rejects.\n    \"\"\"\n    new_tools: Final = []\n    for tool in tools:\n        if tool[\"type\"] != \"function\":\n            raise OCIError(status_code=400, message=\"OCI only supports function tools\")\n\n        tool_function = tool.get(\"function\")\n        if not isinstance(tool_function, dict):\n            raise OCIError(status_code=400, message=\"Tool `function` must be a dictionary\")\n\n        raw_params = tool_function.get(\"parameters\", {})\n        resolved_params = sanitize_oci_schema(resolve_oci_schema_anyof(resolve_oci_schema_refs(raw_params)))\n\n        new_tools.append(\n            OCIToolDefinition(\n                type=\"FUNCTION\",\n                name=tool_function.get(\"name\"),\n                description=tool_function.get(\"description\", \"\"),\n                parameters=resolved_params,\n            )\n        )\n\n    return new_tools","sourceCodeStart":204,"sourceCodeEnd":240,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/llms/oci/chat/generic.py#L204-L240","documentation":"Error \"OCI only supports function tools\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/llms/oci/chat/generic.py:222 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use only function tools for OCI."],"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"}