{"record":{"id":"4730dc8b0badc2df","repo":"sgl-project/sglang","slug":"unsupported-dots-note-omni-video-config-fields-s","errorCode":null,"errorMessage":"Unsupported dots note omni video_config fields: {sorted fields joined by ', '}","messagePattern":"Unsupported dots note omni video_config fields: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/multimodal/processors/dots_note_omni.py","lineNumber":411,"sourceCode":"        request_images = len(image_data) if image_data else 0\n        request_audios = len(audio_data) if audio_data else 0\n        logger.info(\n            \"[dots_mm] rid=%s request videos=%d images=%d audios=%d\",\n            request_obj.rid,\n            request_videos,\n            request_images,\n            request_audios,\n        )\n\n        if video_data:\n            video_config = dict(request_obj.video_config or {})\n            question = video_config.pop(\"_question\", \"\") or \"\"\n            seq = video_config.pop(\"seq\", 131072)\n            audio_cap = video_config.pop(\"audio_cap\", 1.0)\n            audio_sr = video_config.pop(\"audio_sr\", 16000)\n            k_mode = video_config.pop(\"k_mode\", \"eval_ek\")\n            if video_config:\n                raise ValueError(\n                    \"Unsupported dots note omni video_config fields: \"\n                    + \", \".join(sorted(video_config))\n                )\n            sampling_params = request_obj.sampling_params or {}\n            if not isinstance(sampling_params, dict):\n                raise ValueError(\n                    \"Dots note omni video preprocessing requires one request's \"\n                    \"sampling_params as a dictionary.\"\n                )\n            max_new_tokens = sampling_params.get(\"max_new_tokens\") or 0\n            loop = asyncio.get_running_loop()\n            preprocess_started = time.perf_counter()\n            video_media = {}\n            total_content_items = 0\n            total_frames = 0\n            total_audio_segments = 0\n            for video_index, video in enumerate(video_data):\n                content = await loop.run_in_executor(","sourceCodeStart":393,"sourceCodeEnd":429,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/multimodal/processors/dots_note_omni.py#L393-L429","documentation":"Raised by process_mm_data_async when, after popping the known keys (_question, seq, audio_cap, audio_sr, k_mode), video_config still contains entries. Only those whitelisted fields are supported.","triggerScenarios":"Passing video_config with extra keys such as {\"fps\": 2, \"max_pixels\": ...} — anything beyond seq/audio_cap/audio_sr/k_mode/_question triggers the error listing the offending sorted field names.","commonSituations":"Copy-pasting a video_config from another model's docs (Qwen-VL style fps/max_bytes etc.) into a Dots Note Omni request; or typos like 'audio_sample_rate' instead of 'audio_sr'.","solutions":["Remove unsupported keys; keep only seq, audio_cap, audio_sr, k_mode (and internal _question)","Check the error message — it lists the exact offending field names","Fix typos: audio_sr not audio_sample_rate, audio_cap not audio_ratio"],"exampleFix":"// before\nvideo_config = {\"seq\": 131072, \"fps\": 2, \"max_pixels\": 224*224}\n// after\nvideo_config = {\"seq\": 131072}","handlingStrategy":"validation","validationCode":"ALLOWED = {'seq', 'audio_cap', 'audio_sr', 'k_mode', '_question'}\nextra = set(video_config) - ALLOWED\nassert not extra, f'unsupported video_config fields: {sorted(extra)}'","typeGuard":"def valid_video_config(cfg: dict) -> bool:\n    return set(cfg) <= {'seq', 'audio_cap', 'audio_sr', 'k_mode', '_question'}","tryCatchPattern":null,"preventionTips":["Consult the model's docs for supported video_config keys","Don't copy video_config from other model families"],"tags":["multimodal","video-config","unknown-fields","valueerror"],"backgroundTag":"unknown-config-field","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}