{"record":{"id":"478524f55201fac8","repo":"BerriAI/litellm","slug":"at-least-one-message-is-required-for-a2a-completio","errorCode":null,"errorMessage":"At least one message is required for A2A completion","messagePattern":"At least one message is required for A2A completion","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/llms/a2a/chat/transformation.py","lineNumber":216,"sourceCode":"    ) -> dict:\n        \"\"\"\n        Transform OpenAI request to A2A JSON-RPC 2.0 format.\n\n        Args:\n            model: Model name\n            messages: List of OpenAI messages\n            optional_params: Optional parameters\n            litellm_params: LiteLLM parameters\n            headers: Request headers\n\n        Returns:\n            A2A JSON-RPC 2.0 request dict\n        \"\"\"\n        # Generate request ID\n        request_id: Final = str(uuid.uuid4())\n\n        if not messages:\n            raise ValueError(\"At least one message is required for A2A completion\")\n\n        # Convert all messages to maintain conversation history\n        # Use helper to format conversation with role prefixes\n        full_context: Final = convert_messages_to_prompt(messages)\n\n        # Create single A2A message with full conversation context\n        a2a_message: Final = {\n            \"role\": \"user\",\n            \"parts\": [{\"kind\": \"text\", \"text\": full_context}],\n            \"messageId\": str(uuid.uuid4()),\n        }\n\n        # Build JSON-RPC 2.0 request\n        # For A2A protocol, the method is \"message/send\" for non-streaming\n        # and \"message/stream\" for streaming\n        stream: Final = optional_params.get(\"stream\", False)\n        method: Final = \"message/stream\" if stream else \"message/send\"\n","sourceCodeStart":198,"sourceCodeEnd":234,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/llms/a2a/chat/transformation.py#L198-L234","documentation":"Error \"At least one message is required for A2A completion\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/llms/a2a/chat/transformation.py:216 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass at least one message in the A2A completion request."],"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"}