{"record":{"id":"fd37cbbbcbcb4d07","repo":"sgl-project/sglang","slug":"unsupported-composite-input-type-input-type","errorCode":null,"errorMessage":"unsupported composite_input type: {input_type}","messagePattern":"unsupported composite_input type: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/multimodal_gen/runtime/entrypoints/openai/realtime/adapters/lingbot_world_realtime_adapter.py","lineNumber":247,"sourceCode":"                )\n            )\n        return f\"kind=composite_input, inputs={input_logs}\"\n\n    def _parse_composite_input_item(\n        self,\n        state: LingBotWorldRealtimeState,\n        input_type: str,\n        payload: Any,\n        event_id: int | None,\n    ) -> Any:\n        if input_type == \"camera_actions\":\n            return state.parse_camera_control_event_payload(\n                payload,\n                event_id=event_id,\n            )\n        if input_type == \"prompt\":\n            return self._validate_prompt_payload(payload)\n        raise ValueError(f\"unsupported composite_input type: {input_type}\")\n\n    def _ingest_parsed_composite_input_item(\n        self,\n        state: LingBotWorldRealtimeState,\n        input_type: str,\n        parsed_payload: Any,\n        event_id: int | None,\n    ) -> str:\n        if input_type == \"camera_actions\":\n            return state.receive_parsed_camera_control_event_payload(\n                parsed_payload,\n                event_id=event_id,\n            )\n        if input_type == \"prompt\":\n            state.receive_prompt(parsed_payload, event_id=event_id)\n            return f\"kind=prompt, prompt_len={len(parsed_payload)}\"\n        raise ValueError(f\"unsupported composite_input type: {input_type}\")\n","sourceCodeStart":229,"sourceCodeEnd":265,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/multimodal_gen/runtime/entrypoints/openai/realtime/adapters/lingbot_world_realtime_adapter.py#L229-L265","documentation":"During composite_input parsing, the declared input_type is not one the parser branch handles (camera control types or 'prompt'), so it refuses to interpret the item.","triggerScenarios":"input_types: [\"image\"] or any undeclared type name — the per-item parser (_parse_composite_input_item) has no branch for it.","commonSituations":"Client assuming arbitrary modality names are supported; adapter version lacking a newer input type; typos in type names like 'promt'.","solutions":["Restrict input_types entries to 'prompt' and the camera control types the state supports","Check the adapter's parse branch for the exact accepted names","Upgrade or patch the adapter if you need a new modality, don't just send it"],"exampleFix":"// before\n{input_types: [\"text\"], text: \"hi\"}\n// after\n{input_types: [\"prompt\"], prompt: \"hi\"}","handlingStrategy":"validation","validationCode":"SUPPORTED = {'prompt'} | CAMERA_TYPES\npayload['input_types'] = [t for t in payload['input_types'] if t in SUPPORTED]","typeGuard":"def is_supported_type(t: str) -> bool: return t == 'prompt' or t in CAMERA_TYPES","tryCatchPattern":"except ValueError as e: if 'unsupported composite_input type' in str(e): drop the item and resend","preventionTips":["Restrict input_types to documented names","Read the adapter for the accepted set before adding modalities"],"tags":["realtime","event-validation","composite-input","unsupported-type"],"backgroundTag":"unsupported-event-kind","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}