[Windows] Presentation preview rendering crashes in skia-canvas with 0xC0000005

Open 💬 0 comments Opened Jul 31, 2026 by qikeziw977-sudo

Summary

On Windows x64, the bundled presentation preview pipeline can import a PPTX successfully, but the process terminates with access violation 0xC0000005 when it tries to encode the first rendered slide. No JavaScript exception is emitted because the native process crashes.

This is reproducible independently of the PPTX: a minimal skia-canvas buffer export crashes in the same way.

Environment

  • Codex / ChatGPT desktop app: 26.727.4816.0
  • Presentations component: 26.730.11710
  • @oai/artifact-tool: 2.8.36
  • skia-canvas: 3.0.8
  • Bundled Node.js: v24.14.0
  • Windows: x64, build 26200.8875, DisplayVersion 25H2 (registry ProductName: Windows 10 Home)
  • Exit code: decimal -1073741819 / hex 0xC0000005

Reproduction through the bundled presentation renderer

  1. Run the bundled render_slides.py helper on a local PPTX.
  2. The helper imports the deck but fails inside presentation.export({ slide, format: "png", scale: 1 }).
  3. A staged diagnostic produced:
stage: module imported
stage: file loaded
stage: pptx imported 47 47
stage: first slide selected true

The process then exits with -1073741819 (0xC0000005) before returning a preview.

Minimal reproduction

import { Canvas } from "skia-canvas";

const canvas = new Canvas(100, 100);
const context = canvas.getContext("2d");
context.fillStyle = "red";
context.fillRect(0, 0, 100, 100);
const output = await canvas.toBuffer("png");
console.log(output.length);

Observed output:

stage: skia imported win32 x64
stage: canvas created
stage: canvas painted
process exit: -1073741819

Expected behavior

The slide preview or minimal canvas should be encoded and returned as a PNG buffer without terminating the Node process.

Isolation already performed

  • Re-downloaded the official skia-canvas 3.0.8 Windows x64 prebuilt binary. Its SHA-256 matched the bundled binary:

4E5B185CCDFFCEEDE5468B47C4646E2CE66F4E85EC35A753007EC32CB8720498

  • Tested skia-canvas 3.0.6: same crash.
  • Tested Node.js v24.14.0 and official portable Node.js v22.23.2: same crash.
  • Tested synchronous and asynchronous buffer export: same crash.
  • Tested gpu: false: same crash.
  • Tested PNG, JPEG, WebP, SVG, PDF, and raw output: all terminate at encoding with the same access violation.
  • Restarted and checked the desktop package; package status is healthy and the Store reports no newer version.
  • The same PPTX exports correctly through the locally registered WPS Presentation COM interface, so the source presentation is not corrupted.

Workaround

Use WPS Presentation / PowerPoint-compatible COM rendering instead of the bundled artifact-tool/skia-canvas preview pipeline on this machine.

No user document or session content is attached to this report.

View original on GitHub ↗