musistudio/claude-code-router · error
Unsupported PNG filter: ${filter}
Error message
Unsupported PNG filter: ${filter} What it means
Error "Unsupported PNG filter: ${filter}" thrown in musistudio/claude-code-router.
Source
Thrown at packages/electron/src/main/ipc.ts:819
sourceOffset += stride;
}
return {
bitDepth,
colorType: colorType as 2 | 6,
height,
pixels,
width
};
}
function unfilterPngByte(filter: number, raw: number, left: number, up: number, upLeft: number): number {
if (filter === 0) return raw;
if (filter === 1) return (raw + left) & 0xff;
if (filter === 2) return (raw + up) & 0xff;
if (filter === 3) return (raw + Math.floor((left + up) / 2)) & 0xff;
if (filter === 4) return (raw + pngPaethPredictor(left, up, upLeft)) & 0xff;
throw new Error(`Unsupported PNG filter: ${filter}`);
}
function pngPaethPredictor(left: number, up: number, upLeft: number): number {
const estimate = left + up - upLeft;
const leftDistance = Math.abs(estimate - left);
const upDistance = Math.abs(estimate - up);
const upLeftDistance = Math.abs(estimate - upLeft);
if (leftDistance <= upDistance && leftDistance <= upLeftDistance) return left;
if (upDistance <= upLeftDistance) return up;
return upLeft;
}
function pngPixelsToRgba(decoded: DecodedPngPixels): Uint8Array {
const rgba = new Uint8Array(decoded.width * decoded.height * 4);
const sourceChannels = decoded.colorType === 6 ? 4 : 3;
for (let source = 0, target = 0; source < decoded.pixels.length; source += sourceChannels, target += 4) {
rgba[target] = decoded.pixels[source];
rgba[target + 1] = decoded.pixels[source + 1];View on GitHub (pinned to 99f24806c6)
When it happens
Trigger: Thrown at packages/electron/src/main/ipc.ts:819 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of musistudio/claude-code-router@99f24806c6 (2026-08-27).
Data as JSON: /api/errors/f4cb7c97e21f118d.
Report an issue: GitHub.