MiniMax H3 video VAE decode: access violation crash with pinned memory / async offload on RTX 5070 Ti (Blackwell, WDDM, cu130)
Bug summary
Running the official MiniMax H3 I2V template workflow crashes the whole ComfyUI process during video VAE decode when pinned memory / async weight offload are enabled (the defaults on NVIDIA). The crash is a native Windows fatal exception: access violation, not a Python exception. With --disable-async-offload --disable-pinned-memory the same workflow completes successfully.
Environment
- OS: Windows 11 Pro 24H2 (10.0.26100)
- GPU: NVIDIA GeForce RTX 5070 Ti 16 GB (Blackwell, sm_120, WDDM), driver 581.80
- RAM: 48 GB
- ComfyUI: 0.30.0 (commit 6f7cd7f)
- PyTorch: 2.13.0+cu130
- comfy-aimdo 0.4.13, comfy-kitchen 0.2.26
- Python 3.12.7
- Security software: Huorong (HipsDaemon.sys) active — may be relevant for overlapped I/O
Reproduction
- Download the MiniMax H3 models (
Comfy-Org/MiniMax-H3): minimax_h3_fl2va_pruned_int8_convrot.safetensors, qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors, minimax_h3_video_vae_fp16.safetensors, minimax_h3_audio_vae_fp32.safetensors
- Run the official
video_minimax_h3_i2v template workflow (defaults: 0.4 MP, 5 s, 20 steps) with default launch flags.
Observed behavior (three consecutive runs)
Run 1 (default flags): diffusion sampling succeeds, then audio VAE loads fine, then video VAE weight loading fails with:
aimdo: src-win/xfer-file-plat.c:43:ERROR:xfer_file_read_at: GetOverlappedResult failed error=1450 handle=... offset=3651042176 size=2097152
aimdo: src/hostbuf.c:275:ERROR:hostbuf_read_file_slice: file read failed ...
RuntimeError: HostBuffer.read_file_slice failed (at VAEDecode, comfy/memory_management.py:70)
Run 2 (default flags, immediate retry): same read failure path, then:
aimdo: src/model-vbar.c:74:WARNING:VBAR ...: Page 134 pin_count=1
Windows fatal exception: access violation
File "D:\ComfyUI\comfy\sd.py", line 1181 in decode
→ whole process dies.
Run 3 (--disable-async-offload): sampling succeeds (~6.8 s/it, so the cu130 optimized kernels work fine), audio VAE loads, video VAE "prepared for dynamic VRAM loading", then immediately:
Windows fatal exception: access violation
File "D:\ComfyUI\comfy\sd.py", line 1183 in decode
→ process dies again. So the crash is not limited to the async file-read path.
Run 4 (--disable-async-offload --disable-pinned-memory): full success, prompt executed in 155 s.
Expected behavior
Video VAE decode should not crash the process with default flags.
Additional notes
- With torch 2.11.0+cu128 (comfy-kitchen CUDA backend auto-disabled, eager fallback) the identical workflow completed end-to-end with default flags (~15.7 s/it sampling). The crash only appeared after upgrading to torch 2.13.0+cu130 which enables the comfy-kitchen CUDA backend — but note run 3 crashed even with async offload disabled, pointing at the pinned-memory/VBAR host-buffer path rather than the sampling kernels.
error=1450 is ERROR_NO_SYSTEM_RESOURCES from overlapped file I/O in xfer-file-plat.c, possibly aggravated by antivirus filter drivers.
- Workaround confirmed: launch with
--disable-async-offload --disable-pinned-memory.
MiniMax H3 video VAE decode: access violation crash with pinned memory / async offload on RTX 5070 Ti (Blackwell, WDDM, cu130)
Bug summary
Running the official MiniMax H3 I2V template workflow crashes the whole ComfyUI process during video VAE decode when pinned memory / async weight offload are enabled (the defaults on NVIDIA). The crash is a native
Windows fatal exception: access violation, not a Python exception. With--disable-async-offload --disable-pinned-memorythe same workflow completes successfully.Environment
Reproduction
Comfy-Org/MiniMax-H3):minimax_h3_fl2va_pruned_int8_convrot.safetensors,qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors,minimax_h3_video_vae_fp16.safetensors,minimax_h3_audio_vae_fp32.safetensorsvideo_minimax_h3_i2vtemplate workflow (defaults: 0.4 MP, 5 s, 20 steps) with default launch flags.Observed behavior (three consecutive runs)
Run 1 (default flags): diffusion sampling succeeds, then audio VAE loads fine, then video VAE weight loading fails with:
Run 2 (default flags, immediate retry): same read failure path, then:
→ whole process dies.
Run 3 (
--disable-async-offload): sampling succeeds (~6.8 s/it, so the cu130 optimized kernels work fine), audio VAE loads, video VAE "prepared for dynamic VRAM loading", then immediately:→ process dies again. So the crash is not limited to the async file-read path.
Run 4 (
--disable-async-offload --disable-pinned-memory): full success, prompt executed in 155 s.Expected behavior
Video VAE decode should not crash the process with default flags.
Additional notes
error=1450isERROR_NO_SYSTEM_RESOURCESfrom overlapped file I/O inxfer-file-plat.c, possibly aggravated by antivirus filter drivers.--disable-async-offload --disable-pinned-memory.