{"record":{"id":"5968e7d279b310c8","repo":"sgl-project/sglang","slug":"this-browser-does-not-support-worker-image-decodin","errorCode":null,"errorMessage":"This browser does not support worker image decoding","messagePattern":"This browser does not support worker image decoding","errorType":"error_code","errorClass":"Error","httpStatus":null,"severity":"critical","filePath":"python/sglang/multimodal_gen/apps/realtime_webui/decoder_worker.js","lineNumber":102,"sourceCode":"  const bytes = payload instanceof Uint8Array ? payload : new Uint8Array(payload);\n  const lengths = Array.isArray(header.payload_lengths) && header.payload_lengths.length\n    ? header.payload_lengths.map(Number)\n    : [bytes.byteLength];\n  const payloads = [];\n  let offset = 0;\n  for (const length of lengths) {\n    payloads.push(bytes.buffer.slice(\n      bytes.byteOffset + offset,\n      bytes.byteOffset + offset + length,\n    ));\n    offset += length;\n  }\n  return payloads;\n}\n\nasync function encodedFramesToImageBitmaps(header, payload) {\n  if (typeof createImageBitmap === \"undefined\") {\n    throw new Error(\"This browser does not support worker image decoding\");\n  }\n\n  const frames = await Promise.all(splitEncodedPayload(header, payload).map((framePayload) => (\n    createImageBitmap(new Blob([framePayload], { type: header.content_type }))\n  )));\n  return {\n    width: frames[0]?.width || 0,\n    height: frames[0]?.height || 0,\n    frame_type: \"bitmap\",\n    frames,\n  };\n}\n\nasync function decode(header, payload) {\n  let rawPayload;\n  if (\n    header.content_type === WEBP_FRAME_CONTENT_TYPE ||\n    header.content_type === JPEG_FRAME_CONTENT_TYPE","sourceCodeStart":84,"sourceCodeEnd":120,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/multimodal_gen/apps/realtime_webui/decoder_worker.js#L84-L120","documentation":"The float32 branch of deterministic_all_reduce only launches cross_device_reduce_1stage kernels for world sizes 2,4,6,8. Any other fa->world_size_ throws.","triggerScenarios":"Invoking deterministic allreduce with a CustomAllreduce object whose world_size_ is not 2,4,6,8, with float32 tensors.","commonSituations":"Odd or >8 GPU deterministic runs (e.g. --enable-deterministic-inference with TP=3 or TP=16); deterministic mode enabled on topologies the kernel does not support.","solutions":["Use TP in {2,4,6,8} for deterministic inference on ROCm","Disable the deterministic custom kernel or fall back to RCCL for unsupported sizes","Check visible-device masks so world size lands on a supported value"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"assert fa.world_size_ in (2,4,6,8), 'deterministic allreduce needs TP in (2,4,6,8)'","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Gate deterministic mode on supported TP sizes at startup"],"tags":["rocm","allreduce","deterministic","tensor-parallel","float32"],"backgroundTag":"world-size-unsupported","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}