sgl-project/sglang · error · Error
This browser does not support gzip stream decoding
Error message
This browser does not support gzip stream decoding
What it means
RadixTree::commit_loading_onboard / commit_writing_through in tree_v2 are commit-stage stubs: they no-op when the tree is disabled but throw 'Not implemented yet' otherwise. The two-phase write-through/onboard IO protocol's commit step is unfinished in this tree version.
Source
Thrown at python/sglang/multimodal_gen/apps/realtime_webui/decoder_worker.js:15
const RAW_RGB_CONTENT_TYPE = "application/x-raw-rgb";
const RAW_RGB_DELTA_GZIP_CONTENT_TYPE = "application/x-raw-rgb-delta-gzip";
const RAW_RGBA_DELTA_GZIP_CONTENT_TYPE = "application/x-raw-rgba-delta-gzip";
const WEBP_FRAME_CONTENT_TYPE = "image/webp";
const JPEG_FRAME_CONTENT_TYPE = "image/jpeg";
let lastFrame = null;
function reset() {
lastFrame = null;
}
async function gunzipBytes(payload) {
if (typeof DecompressionStream === "undefined") {
throw new Error("This browser does not support gzip stream decoding");
}
const stream = new Blob([payload]).stream().pipeThrough(new DecompressionStream("gzip"));
return new Uint8Array(await new Response(stream).arrayBuffer());
}
async function restoreDeltaGzipFrames(header, payload) {
const frameBytes = Number(header.bytes_per_frame);
const count = Number(header.num_frames);
const expectedSize = frameBytes * count;
const restored = await gunzipBytes(payload);
if (restored.length !== expectedSize) {
throw new Error(`delta payload size mismatch: expected ${expectedSize}, got ${restored.length}`);
}
let previous = header.delta_reference === "previous-frame" ? lastFrame : null;
if (header.delta_reference === "previous-frame") {
if (!previous) throw new Error("Missing previous frame for delta payload");
if (previous.byteLength !== frameBytes) {View on GitHub (pinned to 0132848349)
Solutions
- Disable hicache with tree_v2 so all these IO methods take the disabled fast path
- Use the v1/default radix cache backend for hierarchical caching
- Upgrade once the tree_v2 IO commit path is implemented upstream
Defensive patterns
Strategy: fallback
Validate before calling
if use_hicache:
assert tree_backend != "tree_v2", "tree_v2 commit_writing_through/commit_loading_onboard are stubs" Try / catch
try:
tree.commit_writing_through(ticket, ok)
except RuntimeError as e:
if "Not implemented yet" in str(e):
log.warning("tree_v2 IO commit unsupported; ticket dropped")
else:
raise Prevention
- Avoid enabling hicache with tree_v2 until the IO commit path ships
- Add integration tests covering insert + commit with your tree backend selection
- Keep backend selection centralized so unsupported combos fail loudly at startup
When it happens
Trigger: Using tree_v2 with hicache enabled such that a write-through or onboard operation reaches its commit stage — commit_writing_through(ticket, ok) or commit_loading_onboard(ticket, ok) gets invoked after the (stubbed) begin phase, hitting the throw instead of the disabled fast path.
Common situations: Hierarchical cache enabled with the tree_v2 backend, where the IO ticket commit callbacks run during cache insert/lookup finalization; version upgrades enabling previously dormant code paths.
Related errors
- /v1/models ${response.status}
- Unsupported msgpack byte ${b}
- Ascend PD transfer does not support HiSparse destination dev
- get_split_heads_page_buffer_meta requires layout='page_head'
- Host cache is not supported yet
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/dc82cea472c7f56c.
Report an issue: GitHub.