{"record":{"id":"7fb305a08fc9ffc0","repo":"BerriAI/litellm","slug":"file-data-is-required-7fb305","errorCode":null,"errorMessage":"File data is required","messagePattern":"File data is required","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/llms/manus/files/transformation.py","lineNumber":173,"sourceCode":"\n    def transform_create_file_request(\n        self,\n        model: str,\n        create_file_data: CreateFileRequest,\n        optional_params: dict,\n        litellm_params: dict,\n    ) -> TwoStepFileUploadConfig:\n        \"\"\"\n        Transform OpenAI-style file creation request into Manus's two-step format.\n\n        Manus API spec (https://open.manus.im/docs/openai-compatibility#file-management):\n        1. POST /v1/files with JSON {\"filename\": \"...\"} → returns {\"id\": \"...\", \"upload_url\": \"...\"}\n        2. PUT to upload_url with raw file content\n        \"\"\"\n        # Extract file data\n        file_data: Final = create_file_data.get(\"file\")\n        if file_data is None:\n            raise ValueError(\"File data is required\")\n\n        extracted_data: Final = extract_file_data(file_data)\n        filename: Final = extracted_data[\"filename\"] or f\"file_{int(time.time())}\"\n        content: Final = extracted_data[\"content\"]\n\n        # Get API base URL\n        api_base: Final = self.get_complete_url(\n            api_base=litellm_params.get(\"api_base\"),\n            api_key=litellm_params.get(\"api_key\"),\n            model=model,\n            optional_params=optional_params,\n            litellm_params=litellm_params,\n        )\n\n        # Get API key\n        api_key: Final = litellm_params.get(\"api_key\") or litellm.api_key or get_secret_str(\"MANUS_API_KEY\")\n\n        if not api_key:","sourceCodeStart":155,"sourceCodeEnd":191,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/llms/manus/files/transformation.py#L155-L191","documentation":"Error \"File data is required\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/llms/manus/files/transformation.py:173 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass file data for the Manus file upload."],"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"}