Skip to content

occasional Live2D render crash (Win11)ย #935

@s3d-i

Description

@s3d-i

Describe the bug

2026-01-11T12:21:50.858Z [log] [@proj-airi/server-runtime:websocket] connected  { peer=24e973ff-1e25-418d-9912-adc8c8fc28d8 activePeers=1 }
Sourcemap for "E:/L/airi/node_modules/.pnpm/@duckdb+duckdb-wasm@1.29.1-dev68.0/node_modules/@duckdb/duckdb-wasm/dist/duckdb-browser-eh.worker.js" points to missing source files
Stacktrace:
    ptr0=00000007165FD370
    ptr1=000001A8531B6500
    ptr2=0000000000000000
    ptr3=0000000000000000
    ptr4=0000000000000000
    ptr5=0000000000000000
    failure_message_object=00000007165F4EF0

==== JS stack trace =========================================

    0: ExitFrame [pc: 00007FF72A37B6FA]
    1: StubFrame [pc: 00007FF72A2CDE72]
    2: get [000001A8018EBD8D] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/vue.runtime.esm-bundler-B4urelxq.js?v=20523ded:~971] [pc=00007FF78A539619](this=0x01a8018ebfa5 <BaseReactiveHandler map = 000001A800F5F45D>,0x01a8042e4e99 <Object map = 000001A8044214F1>,0x01a800004a69 <String[5]: #index>,0x01a8043b6f65 <JSProxy>)
    3: StubFrame [pc: 00007FF72A3FBF8F]
    4: setupShaderProgram [000001A80142BFF5] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/pixi-live2d-display_cubism4.js?v=20523ded:~2813] [pc=00007FF78A6B4EFD](this=0x01a802f95069 <CubismShader_WebGL map = 000001A804435AC1>,0x01a8043bb119 <JSProxy>,0x01a8042e70ed <WebGLTexture map = 000001A802597AFD>,28,0x01a802fb7edd <Float32Array map = 000001A800835DD5>,0x01a802faecd5 <Uint16Array map = 000001A800832B91>,0x01a802fbd905 <Float32Array map = 000001A800835DD5>,0x01a8043b6f65 <JSProxy>,1,0,0x01a802519c0d <Object map = 000001A8043DE9B1>,0x01a800000071 <true>,0x01a8043b2cad <JSProxy>,0x01a800000055 <false>)
    5: doDrawModel(aka doDrawModel) [000001A80142C629] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/pixi-live2d-display_cubism4.js?v=20523ded:~3110] [pc=00007FF78A6FD5C7](this=0x01a8043bb119 <JSProxy>)
    6: draw(aka draw) [000001A801431A49] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/pixi-live2d-display_cubism4.js?v=20523ded:~4820] [pc=00007FF78A8719B8](this=0x01a8025f4f99 <JSProxy>,0x01a802051dd5 <WebGL2RenderingContext map = 000001A802C97599>)
    7: _render(aka _render) [000001A80142F95D] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/pixi-live2d-display_cubism4.js?v=20523ded:~4375] [pc=00007FF78A842CED](this=0x01a8025f3fcd <JSProxy>,0x01a80362f2b9 <JSProxy>)
    8: /* anonymous */(aka /* anonymous */) [000001A80231DC5D] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/display-C-NOavtm.js?v=20523ded:~1364] [pc=00007FF78A762F12](this=0x01a8025f3fcd <JSProxy>,0x01a80362f2b9 <JSProxy>)
    9: /* anonymous */(aka /* anonymous */) [000001A80231DC3D] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/display-C-NOavtm.js?v=20523ded:~1351] [pc=00007FF78A74EE83](this=0x01a8025f3fcd <JSProxy>,0x01a80362f2b9 <JSProxy>)
   10: /* anonymous */(aka /* anonymous */) [000001A80231DC3D] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/display-C-NOavtm.js?v=20523ded:~1351] [pc=00007FF78A74F0A3](this=0x01a80362ef5d <JSProxy>,0x01a80362f2b9 <JSProxy>)
   11: /* anonymous */(aka /* anonymous */) [000001A802316B7D] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/core-C7U76du-.js?v=20523ded:~11769] [pc=00007FF78A8598F7](this=0x01a80362f2b9 <JSProxy>,0x01a80362ef5d <JSProxy>,0x01a800000011 <undefined>)
   12: guardedRender [000001A80204D7E5] [http://localhost:5173/@fs/E:/L/airi/packages/stage-ui-live2d/src/components/scenes/live2d/Canvas.vue:~51] [pc=00007FF78A764138](this=0x01a80204d791 <TickerListener$1 map = 000001A8027000E1>)
   13: /* anonymous */ [000001A8022FAE09] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/ticker-0v0nQC8g.js?v=20523ded:~1050] [pc=00007FF78A74FA21](this=0x01a80207caad <Ticker$1 map = 000001A802B8AAF1>,0x01a80243d295 <HeapNumber 94726.9>)
   14: /* anonymous */(aka /* anonymous */) [000001A803DF5A55] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/ticker-0v0nQC8g.js?v=20523ded:~896] [pc=00007FF78A6FF0B0](this=0x01a800000011 <undefined>,0x01a80243d295 <HeapNumber 94726.9>)
   15: InternalFrame [pc: 00007FF72A2CB29C]
   16: EntryFrame [pc: 00007FF72A2CADFF]

==== Details ================================================

[0]: ExitFrame [pc: 00007FF72A37B6FA]
[1]: StubFrame [pc: 00007FF72A2CDE72]
[2]: get [000001A8018EBD8D] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/vue.runtime.esm-bundler-B4urelxq.js?v=20523ded:~971] [pc=00007FF78A539619](this=0x01a8018ebfa5 <BaseReactiveHandler map = 000001A800F5F45D>,0x01a8042e4e99 <Object map = 000001A8044214F1>,0x01a800004a69 <String[5]: #index>,0x01a8043b6f65 <JSProxy>) {
// optimized frame
--------- s o u r c e   c o d e ---------
function get(target, key, receiver) {\x0a\x09\x09if (key === "__v_skip") return target["__v_skip"];\x0a\x09\x09const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\x0a\x09\x09if (key === "__v_isReactive") return !isReadonly2;\x0a\x09\x09else if (key === "__v_isReadonly") return isReadonly2;\x0a\x09\x09else if (key === "__v_isShallow") retur...

-----------------------------------------
}
[3]: StubFrame [pc: 00007FF72A3FBF8F]
[4]: setupShaderProgram [000001A80142BFF5] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/pixi-live2d-display_cubism4.js?v=20523ded:~2813] [pc=00007FF78A6B4EFD](this=0x01a802f95069 <CubismShader_WebGL map = 000001A804435AC1>,0x01a8043bb119 <JSProxy>,0x01a8042e70ed <WebGLTexture map = 000001A802597AFD>,28,0x01a802fb7edd <Float32Array map = 000001A800835DD5>,0x01a802faecd5 <Uint16Array map = 000001A800832B91>,0x01a802fbd905 <Float32Array map = 000001A800835DD5>,0x01a8043b6f65 <JSProxy>,1,0,0x01a802519c0d <Object map = 000001A8043DE9B1>,0x01a800000071 <true>,0x01a8043b2cad <JSProxy>,0x01a800000055 <false>) {
// optimized frame
--------- s o u r c e   c o d e ---------
function setupShaderProgram(renderer, textureId, vertexCount, vertexArray, indexArray, uvArray, bufferData, opacity, colorBlendMode, baseColor, isPremultipliedAlpha, matrix4x4, invertedMask) {\x0a\x09\x09if (!isPremultipliedAlpha) CubismLogError("NoPremultipliedAlpha is not allowed");\x0a\x09\x09if (this._shaderSets.length == 0) this.generateS...

-----------------------------------------
}
[5]: doDrawModel(aka doDrawModel) [000001A80142C629] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/pixi-live2d-display_cubism4.js?v=20523ded:~3110] [pc=00007FF78A6FD5C7](this=0x01a8043bb119 <JSProxy>) {
// optimized frame
--------- s o u r c e   c o d e ---------
function doDrawModel() {\x0a\x09\x09this.preDraw();\x0a\x09\x09if (this._clippingManager != null) this._clippingManager.setupClippingContext(this.getModel(), this);\x0a\x09\x09const drawableCount = this.getModel().getDrawableCount();\x0a\x09\x09const renderOrder = this.getModel().getDrawableRenderOrders();\x0a\x09\x09for (let i = 0; i < drawableCount; ++i) {\x0a\x09\x09\x09c...

-----------------------------------------
}
[6]: draw(aka draw) [000001A801431A49] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/pixi-live2d-display_cubism4.js?v=20523ded:~4820] [pc=00007FF78A8719B8](this=0x01a8025f4f99 <JSProxy>,0x01a802051dd5 <WebGL2RenderingContext map = 000001A802C97599>) {
// optimized frame
--------- s o u r c e   c o d e ---------
function draw(gl) {\x0a\x09\x09const matrix = this.drawingMatrix;\x0a\x09\x09const array = tempMatrix.getArray();\x0a\x09\x09array[0] = matrix.a;\x0a\x09\x09array[1] = matrix.b;\x0a\x09\x09array[4] = -matrix.c;\x0a\x09\x09array[5] = -matrix.d;\x0a\x09\x09array[12] = matrix.tx;\x0a\x09\x09array[13] = matrix.ty;\x0a\x09\x09this.renderer.setMvpMatrix(tempMatrix);\x0a\x09\x09this.renderer.setRenderState(...

-----------------------------------------
}
[7]: _render(aka _render) [000001A80142F95D] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/pixi-live2d-display_cubism4.js?v=20523ded:~4375] [pc=00007FF78A842CED](this=0x01a8025f3fcd <JSProxy>,0x01a80362f2b9 <JSProxy>) {
// optimized frame
--------- s o u r c e   c o d e ---------
function _render(renderer) {\x0a\x09\x09this.registerInteraction(renderer.plugins.interaction);\x0a\x09\x09renderer.batch.reset();\x0a\x09\x09renderer.geometry.reset();\x0a\x09\x09renderer.shader.reset();\x0a\x09\x09renderer.state.reset();\x0a\x09\x09let shouldUpdateTexture = false;\x0a\x09\x09if (this.glContextID !== renderer.CONTEXT_UID) {\x0a\x09\x09\x09this.glContextID = renderer.CONT...

-----------------------------------------
}
[8]: /* anonymous */(aka /* anonymous */) [000001A80231DC5D] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/display-C-NOavtm.js?v=20523ded:~1364] [pc=00007FF78A762F12](this=0x01a8025f3fcd <JSProxy>,0x01a80362f2b9 <JSProxy>) {
// optimized frame
--------- s o u r c e   c o d e ---------
function (renderer) {\x0a\x09\x09var filters = this.filters;\x0a\x09\x09var mask = this._mask;\x0a\x09\x09if (filters) {\x0a\x09\x09\x09if (!this._enabledFilters) this._enabledFilters = [];\x0a\x09\x09\x09this._enabledFilters.length = 0;\x0a\x09\x09\x09for (var i = 0; i < filters.length; i++) if (filters[i].enabled) this._enabledFilters.push(filters[i]);\x0a\x09\x09}\x0a\x09\x09var flush...

-----------------------------------------
}
[9]: /* anonymous */(aka /* anonymous */) [000001A80231DC3D] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/display-C-NOavtm.js?v=20523ded:~1351] [pc=00007FF78A74EE83](this=0x01a8025f3fcd <JSProxy>,0x01a80362f2b9 <JSProxy>) {
// optimized frame
--------- s o u r c e   c o d e ---------
function (renderer) {\x0a\x09\x09if (!this.visible || this.worldAlpha <= 0 || !this.renderable) return;\x0a\x09\x09if (this._mask || this.filters && this.filters.length) this.renderAdvanced(renderer);\x0a\x09\x09else if (this.cullable) this._renderWithCulling(renderer);\x0a\x09\x09else {\x0a\x09\x09\x09this._render(renderer);\x0a\x09\x09\x09for (var i = 0, j = this.c...

-----------------------------------------
}
[10]: /* anonymous */(aka /* anonymous */) [000001A80231DC3D] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/display-C-NOavtm.js?v=20523ded:~1351] [pc=00007FF78A74F0A3](this=0x01a80362ef5d <JSProxy>,0x01a80362f2b9 <JSProxy>) {
// optimized frame
--------- s o u r c e   c o d e ---------
function (renderer) {\x0a\x09\x09if (!this.visible || this.worldAlpha <= 0 || !this.renderable) return;\x0a\x09\x09if (this._mask || this.filters && this.filters.length) this.renderAdvanced(renderer);\x0a\x09\x09else if (this.cullable) this._renderWithCulling(renderer);\x0a\x09\x09else {\x0a\x09\x09\x09this._render(renderer);\x0a\x09\x09\x09for (var i = 0, j = this.c...

-----------------------------------------
}
[11]: /* anonymous */(aka /* anonymous */) [000001A802316B7D] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/core-C7U76du-.js?v=20523ded:~11769] [pc=00007FF78A8598F7](this=0x01a80362f2b9 <JSProxy>,0x01a80362ef5d <JSProxy>,0x01a800000011 <undefined>) {
// optimized frame
--------- s o u r c e   c o d e ---------
function (displayObject, options) {\x0a\x09\x09var renderTexture;\x0a\x09\x09var clear;\x0a\x09\x09var transform;\x0a\x09\x09var skipUpdateTransform;\x0a\x09\x09if (options) if (options instanceof RenderTexture) {\x0a\x09\x09\x09deprecation("6.0.0", "Renderer#render arguments changed, use options instead.");\x0a\x09\x09\x09renderTexture = options;\x0a\x09\x09\x09clear = arguments[2];\x0a\x09\x09\x09...

-----------------------------------------
}
[12]: guardedRender [000001A80204D7E5] [http://localhost:5173/@fs/E:/L/airi/packages/stage-ui-live2d/src/components/scenes/live2d/Canvas.vue:~51] [pc=00007FF78A764138](this=0x01a80204d791 <TickerListener$1 map = 000001A8027000E1>) {
// optimized frame
--------- s o u r c e   c o d e ---------
function guardedRender() => {\x0a\x09\x09\x09\x09try {\x0a\x09\x09\x09\x09\x09app.render();\x0a\x09\x09\x09\x09} catch (error) {\x0a\x09\x09\x09\x09\x09console.error("[Live2D] Pixi render error.", error);\x0a\x09\x09\x09\x09\x09app.ticker.stop();\x0a\x09\x09\x09\x09}\x0a\x09\x09\x09}
-----------------------------------------
}
[13]: /* anonymous */ [000001A8022FAE09] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/ticker-0v0nQC8g.js?v=20523ded:~1050] [pc=00007FF78A74FA21](this=0x01a80207caad <Ticker$1 map = 000001A802B8AAF1>,0x01a80243d295 <HeapNumber 94726.9>) {
// optimized frame
--------- s o u r c e   c o d e ---------
function (currentTime) {\x0a\x09\x09if (currentTime === void 0) currentTime = performance.now();\x0a\x09\x09var elapsedMS;\x0a\x09\x09if (currentTime > this.lastTime) {\x0a\x09\x09\x09elapsedMS = this.elapsedMS = currentTime - this.lastTime;\x0a\x09\x09\x09if (elapsedMS > this._maxElapsedMS) elapsedMS = this._maxElapsedMS;\x0a\x09\x09\x09elapsedMS *= this.speed;\x0a\x09\x09\x09if (...

-----------------------------------------
}
[14]: /* anonymous */(aka /* anonymous */) [000001A803DF5A55] [http://localhost:5173/@fs/E:/L/airi/apps/stage-tamagotchi/node_modules/.vite/deps/ticker-0v0nQC8g.js?v=20523ded:~896] [pc=00007FF78A6FF0B0](this=0x01a800000011 <undefined>,0x01a80243d295 <HeapNumber 94726.9>) {
// optimized frame
--------- s o u r c e   c o d e ---------
function (time) {\x0a\x09\x09\x09_this._requestId = null;\x0a\x09\x09\x09if (_this.started) {\x0a\x09\x09\x09\x09_this.update(time);\x0a\x09\x09\x09\x09if (_this.started && _this._requestId === null && _this._head.next) _this._requestId = requestAnimationFrame(_this._tick);\x0a\x09\x09\x09}\x0a\x09\x09}
-----------------------------------------
}
[15]: InternalFrame [pc: 00007FF72A2CB29C]
[16]: EntryFrame [pc: 00007FF72A2CADFF]
=====================

[23372:0111/202316.177:ERROR:third_party\crashpad\crashpad\client\crashpad_client_win.cc:869] not connected
2026-01-11T12:23:16.183Z [log] [@proj-airi/server-runtime:websocket] closed  { peer=24e973ff-1e25-418d-9912-adc8c8fc28d8 peerRemote=undefined details={"code":1001,"reason":""} activePeers=1 }

System Info

System:
    OS: Windows 11 10.0.26100
    CPU: (32) x64 13th Gen Intel(R) Core(TM) i9-13900HX
    Memory: 9.87 GB / 31.73 GB
  Binaries:
    Node: 24.9.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.22 - C:\Program Files\nodejs\yarn.CMD
    npm: 11.6.0 - C:\Program Files\nodejs\npm.CMD
    pnpm: 10.26.2 - C:\Program Files\nodejs\pnpm.CMD
  Browsers:
    Chrome: 143.0.7499.170
    Edge: Chromium (141.0.3537.57)
    Firefox: 143.0.4 - C:\Program Files\Mozilla Firefox\firefox.exe
    Firefox Developer Edition: 135.0 - C:\Program Files\Firefox Developer Edition\firefox.exe
    Internet Explorer: 11.0.26100.7309

Validations

  • Follow our Code of Conduct
  • Read the Contributing Guide.
  • Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
  • Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.

Contributions

  • I am willing to submit a PR to fix this issue
  • I am willing to submit a PR with failing tests (actually just go ahead and do it, thanks!)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions