MiniMax H3 video VAE decode: access violation with pinned memory / async offload on RTX 5070 Ti (Blackwell, WDDM, cu130)
- Dominant language
- Python
- Stars
- 133k
- Forks
- 15.7k
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 158
Description
# 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 6f7cd7fceaaf60d2669b554936394a7412c6fde5)
- 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
1. 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`
2. 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`.
Contributor guide
Assessment
This issue has not been assessed yet.