2.0.3.23175+ Mouse events UB crash

Mouse position events sometimes crash when registered and used during map initialization.

bug was confirmed during v2.0.3.23175. The crash in error log is random, usually ACCESS VIOLATION.

The crash is highly irregular, happens after loading screen finishes and takes
many attempts to reproduce with 8 people in a lobby.

We don’t know if click events suffer from the same issue in practice.

Workaround: Delay all mouse event registration until after the game starts.

  • TriggerRegisterPlayerMouseEventBJ
  • bj_MOUSEEVENTTYPE_MOVE
  • BlzGetTriggerPlayerMouseX
  • BlzGetTriggerPlayerMouseY
  • EVENT_PLAYER_MOUSE_MOVE

Minimal repro excerpt we reduced it to (commenting out this trigger stopped the crashing).

function Trig_Event_Players_Mouse_Position_Actions takes nothing returns nothing
    local player p=GetTriggerPlayer()
    local integer pid=GetConvertedPlayerId(p)
    set PlayerMousePositionX[pid]=BlzGetTriggerPlayerMouseX()
    set PlayerMousePositionY[pid]=BlzGetTriggerPlayerMouseY()
endfunction

// Map load -> main() -> InitCustomTriggers() -> InitTrig_Event_Players_Mouse_Position()
function InitTrig_Event_Players_Mouse_Position takes nothing returns nothing
    local integer i
    
    set gg_trg_Event_Players_Mouse_Position=CreateTrigger()
    call TriggerAddAction(gg_trg_Event_Players_Mouse_Position,function Trig_Event_Players_Mouse_Position_Actions)
    
    set i=1
    loop
        set PlayerMousePositionX[i]=0
        set PlayerMousePositionY[i]=0
        
        call TriggerRegisterPlayerMouseEventBJ(gg_trg_Event_Players_Mouse_Position,ConvertedPlayer(i),bj_MOUSEEVENTTYPE_MOVE)
        set i=i+1
        
        exitwhen i>TOTAL_PLAYERS
    endloop
endfunction

Log of 4 multi-instances crashing at once

All run locally over bnet, same lobby.

Log files grep
for file in "2025-12-01 00.00.00 "*/Crash.txt; do echo "--- $file ---"; echo;  awk '/Exception.Summary/,/MXCSR/' "$file"; echo "--- end of excerpt ---"; done

--- 2025-12-01 00.00.00 8134b8f4/Crash.txt ---

<Exception.Summary:>
class std::bad_alloc (bad allocation) DBG-OPTIONS<FunctionsOnly SingleLine> DBG-ADDR<00007FF73309DDBB>("Warcraft III.exe") <- DBG-ADDR<00007FF73458881F>("Warcraft III.exe") <- DBG-ADDR<00007FF7345A28A8>("Warcraft III.exe")  DBG-OPTIONS<>
<:Exception.Summary>

<Exception.Assertion:>
Thread 0x00002ac4 "Main Thread" [Stack Base: 0x000000BB3B400000 Used Space: 78528/2097152 bytes]
DBG-ADDR<00007FF73309DDBB>("Warcraft III.exe")
DBG-ADDR<00007FF73458881F>("Warcraft III.exe")
DBG-ADDR<00007FF7345A28A8>("Warcraft III.exe")
DBG-ADDR<00007FF7345A1D5A>("Warcraft III.exe")
DBG-ADDR<00007FF7345A2D02>("Warcraft III.exe")
DBG-ADDR<00007FF734588519>("Warcraft III.exe")
DBG-ADDR<00007FF734578AB4>("Warcraft III.exe")
DBG-ADDR<00007FF734570BAC>("Warcraft III.exe")
DBG-ADDR<00007FF734570890>("Warcraft III.exe")
DBG-ADDR<00007FF734570F86>("Warcraft III.exe")
DBG-ADDR<00007FF734570752>("Warcraft III.exe")
DBG-ADDR<00007FF7330F7390>("Warcraft III.exe")
DBG-ADDR<00007FF7330F76DC>("Warcraft III.exe")
DBG-ADDR<00007FF7331077C6>("Warcraft III.exe")
DBG-ADDR<00007FF733119AE4>("Warcraft III.exe")
DBG-ADDR<00007FF733116E6E>("Warcraft III.exe")
DBG-ADDR<00007FF7331173C8>("Warcraft III.exe")
DBG-ADDR<00007FF7331189D5>("Warcraft III.exe")
DBG-ADDR<00007FF7340DD866>("Warcraft III.exe")
DBG-ADDR<00007FF73411BDB9>("Warcraft III.exe")
DBG-ADDR<00007FF73411BA8C>("Warcraft III.exe")
DBG-ADDR<00007FF7340D798E>("Warcraft III.exe")
DBG-ADDR<00007FF7340E232C>("Warcraft III.exe")
DBG-ADDR<00007FF73405D70C>("Warcraft III.exe")
DBG-ADDR<00007FF734056676>("Warcraft III.exe")
DBG-ADDR<00007FF73405642C>("Warcraft III.exe")
DBG-ADDR<00007FF7340E270D>("Warcraft III.exe")
DBG-ADDR<00007FF734028140>("Warcraft III.exe")
DBG-ADDR<00007FF7337A03DD>("Warcraft III.exe")
DBG-ADDR<00007FF733B54CF9>("Warcraft III.exe")
DBG-ADDR<00007FF7330DFF34>("Warcraft III.exe")
DBG-ADDR<00007FF7330DFDAF>("Warcraft III.exe")
DBG-ADDR<00007FF734251EA3>("Warcraft III.exe")
DBG-ADDR<00007FF734253EA0>("Warcraft III.exe")
DBG-ADDR<00007FF73425E813>("Warcraft III.exe")
DBG-ADDR<00007FF73425749F>("Warcraft III.exe")
DBG-ADDR<00007FF73319506B>("Warcraft III.exe")
DBG-ADDR<00007FF733198D64>("Warcraft III.exe")
DBG-ADDR<00007FF733089AF8>("Warcraft III.exe")
DBG-ADDR<00007FF73306A545>("Warcraft III.exe")
<:Exception.Assertion>

Registers:
   RAX:0x00007ff8729a4a00   RBX:0x000000bb3b3ef2b0   RCX:0x000000bb3b3ef2b0   RDX:0x000000bb3b3ef2b0
   RBP:0x000000bb3b3ef350   RSI:0x000000bb3b3f4960   RDI:0x0000000000002ac4    R8:0x000000bb3b3efec0
    R9:0x000000000000000a   R10:0x00000246cd05ee68   R11:0x000000bb3b3efa70   R12:0x000000bb3b3efec0
   R13:0x00007ff7358f2b28   R14:0x0000000000000002   R15:0x00007ff73313d320
   RSP:0x000000bb3b3ef220   RIP:0x00007ff734c01859   FLG:0x00000217
    CS:0x00000033    SS:0x0000002b

    DS:0x0000002b    ES:0x0000002b    FS:0x00000053    GS:0x0000002b

  XMM0:0x00000000 0x00000000 0x00000000 0x00000000  XMM1:0x00000000 0x00000000 0x00000000 0xff000000
  XMM2:0x63726157 0x74666172 0x49494920 0x6578652e  XMM3:0x00000000 0x00000000 0x00000000 0x00000000
  XMM4:0x00000000 0x00000000 0x00000000 0x00000000  XMM5:0x00000000 0x00000000 0x00000000 0x00000000
  XMM6:0x3b3f7500 0x000000bb 0x00000001 0x00000000  XMM7:0xbf800000 0x00000000 0x00000000 0x00000000
  XMM8:0x43070000 0x00000000 0x00000000 0x00000000  XMM9:0x3c8efa35 0x00000000 0x00000000 0x00000000
 XMM10:0x3f800000 0x00000000 0x00000000 0x00000000 XMM11:0x3e99999a 0x00000000 0x00000000 0x00000000
 XMM12:0x3f800000 0x00000000 0x00000000 0x00000000 XMM13:0x3f4ccccd 0x00000000 0x00000000 0x00000000
 XMM14:0x00000000 0x00000000 0x00000000 0x00000000 XMM15:0x3f666666 0x00000000 0x00000000 0x00000000
 MXCSR:0x00001fa2
--- end of excerpt ---
--- 2025-12-01 00.00.00 818792b8/Crash.txt ---

<Exception.Summary:>
class std::bad_alloc (bad allocation) DBG-OPTIONS<FunctionsOnly SingleLine> DBG-ADDR<00007FF73309DDBB>("Warcraft III.exe") <- DBG-ADDR<00007FF73458881F>("Warcraft III.exe") <- DBG-ADDR<00007FF7345A28A8>("Warcraft III.exe")  DBG-OPTIONS<>
<:Exception.Summary>

<Exception.Assertion:>
Thread 0x00003e5c "Main Thread" [Stack Base: 0x000000D605E00000 Used Space: 79440/2097152 bytes]
DBG-ADDR<00007FF73309DDBB>("Warcraft III.exe")
DBG-ADDR<00007FF73458881F>("Warcraft III.exe")
DBG-ADDR<00007FF7345A28A8>("Warcraft III.exe")
DBG-ADDR<00007FF7345A1D5A>("Warcraft III.exe")
DBG-ADDR<00007FF7345A2D02>("Warcraft III.exe")
DBG-ADDR<00007FF734588519>("Warcraft III.exe")
DBG-ADDR<00007FF734578AB4>("Warcraft III.exe")
DBG-ADDR<00007FF734570BAC>("Warcraft III.exe")
DBG-ADDR<00007FF734570890>("Warcraft III.exe")
DBG-ADDR<00007FF734570F86>("Warcraft III.exe")
DBG-ADDR<00007FF734570752>("Warcraft III.exe")
DBG-ADDR<00007FF7330F7390>("Warcraft III.exe")
DBG-ADDR<00007FF7330F76DC>("Warcraft III.exe")
DBG-ADDR<00007FF733105A8F>("Warcraft III.exe")
DBG-ADDR<00007FF733104D8B>("Warcraft III.exe")
DBG-ADDR<00007FF7332534AF>("Warcraft III.exe")
DBG-ADDR<00007FF733252590>("Warcraft III.exe")
DBG-ADDR<00007FF733115495>("Warcraft III.exe")
DBG-ADDR<00007FF733115BFC>("Warcraft III.exe")
DBG-ADDR<00007FF733117882>("Warcraft III.exe")
DBG-ADDR<00007FF7331174AA>("Warcraft III.exe")
DBG-ADDR<00007FF7331189D5>("Warcraft III.exe")
DBG-ADDR<00007FF7340DD866>("Warcraft III.exe")
DBG-ADDR<00007FF73411BDB9>("Warcraft III.exe")
DBG-ADDR<00007FF73411BA8C>("Warcraft III.exe")
DBG-ADDR<00007FF7340D798E>("Warcraft III.exe")
DBG-ADDR<00007FF7340E232C>("Warcraft III.exe")
DBG-ADDR<00007FF73405D70C>("Warcraft III.exe")
DBG-ADDR<00007FF734056676>("Warcraft III.exe")
DBG-ADDR<00007FF73405642C>("Warcraft III.exe")
DBG-ADDR<00007FF7340E270D>("Warcraft III.exe")
DBG-ADDR<00007FF734028140>("Warcraft III.exe")
DBG-ADDR<00007FF7337A03DD>("Warcraft III.exe")
DBG-ADDR<00007FF733B54CF9>("Warcraft III.exe")
DBG-ADDR<00007FF7330DFF34>("Warcraft III.exe")
DBG-ADDR<00007FF7330DFDAF>("Warcraft III.exe")
DBG-ADDR<00007FF734251EA3>("Warcraft III.exe")
DBG-ADDR<00007FF734253EA0>("Warcraft III.exe")
DBG-ADDR<00007FF73425E813>("Warcraft III.exe")
DBG-ADDR<00007FF73425749F>("Warcraft III.exe")
DBG-ADDR<00007FF73319506B>("Warcraft III.exe")
DBG-ADDR<00007FF733198D64>("Warcraft III.exe")
DBG-ADDR<00007FF733089AF8>("Warcraft III.exe")
DBG-ADDR<00007FF73306A545>("Warcraft III.exe")
<:Exception.Assertion>

Registers:
   RAX:0x00007ff8729a4a00   RBX:0x000000d605deef20   RCX:0x000000d605deef20   RDX:0x000000d605deef20
   RBP:0x000000d605deefc0   RSI:0x000000d605df45d0   RDI:0x0000000000003e5c    R8:0x000000d605defb30
    R9:0x000000000000000a   R10:0xd5841cb4a411896b   R11:0x000000d605def6e0   R12:0x000000d605defb30
   R13:0x00007ff7358f2b28   R14:0x0000000000000002   R15:0x00007ff73313d320
   RSP:0x000000d605deee90   RIP:0x00007ff734c01859   FLG:0x00000a47
    CS:0x00000033    SS:0x0000002b

    DS:0x0000002b    ES:0x0000002b    FS:0x00000053    GS:0x0000002b

  XMM0:0x00000000 0x00000000 0x00000000 0x00000000  XMM1:0x00000000 0x00000000 0x00000000 0x00000000
  XMM2:0x63726157 0x74666172 0x49494920 0x6578652e  XMM3:0x00000000 0x00000000 0x00000000 0x00000000
  XMM4:0x00000000 0x00000000 0x00000000 0x00000000  XMM5:0x00000000 0x00000000 0x00000000 0x00000000
  XMM6:0x05df7170 0x000000d6 0x00000001 0x00000000  XMM7:0xbf800000 0x00000000 0x00000000 0x00000000
  XMM8:0x43070000 0x00000000 0x00000000 0x00000000  XMM9:0x3c8efa35 0x00000000 0x00000000 0x00000000
 XMM10:0x3f800000 0x00000000 0x00000000 0x00000000 XMM11:0x3e99999a 0x00000000 0x00000000 0x00000000
 XMM12:0x3f800000 0x00000000 0x00000000 0x00000000 XMM13:0x3f4ccccd 0x00000000 0x00000000 0x00000000
 XMM14:0x00000000 0x00000000 0x00000000 0x00000000 XMM15:0x3f666666 0x00000000 0x00000000 0x00000000
 MXCSR:0x00001fa2
--- end of excerpt ---
--- 2025-12-01 00.00.00 825598e8/Crash.txt ---

<Exception.Summary:>
ACCESS_VIOLATION (Failed to write address 0x0000000000000004 at instruction 0x00007FF7340DEBDC) DBG-OPTIONS<FunctionsOnly SingleLine> DBG-ADDR<00007FF7340DEBDC>("Warcraft III.exe") <- DBG-ADDR<00007FF7340D794B>("Warcraft III.exe") <- DBG-ADDR<00007FF7340E232C>("Warcraft III.exe")  DBG-OPTIONS<>
<:Exception.Summary>

<Exception.Assertion:>
Thread 0x00001204 "Main Thread" [Stack Base: 0x0000008C08400000 Used Space: 68912/2097152 bytes]
DBG-ADDR<00007FF7340DEBDC>("Warcraft III.exe")
DBG-ADDR<00007FF7340D794B>("Warcraft III.exe")
DBG-ADDR<00007FF7340E232C>("Warcraft III.exe")
DBG-ADDR<00007FF73405D70C>("Warcraft III.exe")
DBG-ADDR<00007FF734056676>("Warcraft III.exe")
DBG-ADDR<00007FF73405642C>("Warcraft III.exe")
DBG-ADDR<00007FF7340E270D>("Warcraft III.exe")
DBG-ADDR<00007FF734028140>("Warcraft III.exe")
DBG-ADDR<00007FF7337A03DD>("Warcraft III.exe")
DBG-ADDR<00007FF733B54CF9>("Warcraft III.exe")
DBG-ADDR<00007FF7330DFF34>("Warcraft III.exe")
DBG-ADDR<00007FF7330DFDAF>("Warcraft III.exe")
DBG-ADDR<00007FF734251EA3>("Warcraft III.exe")
DBG-ADDR<00007FF734253EA0>("Warcraft III.exe")
DBG-ADDR<00007FF73425E813>("Warcraft III.exe")
DBG-ADDR<00007FF73425749F>("Warcraft III.exe")
DBG-ADDR<00007FF73319506B>("Warcraft III.exe")
DBG-ADDR<00007FF733198D64>("Warcraft III.exe")
DBG-ADDR<00007FF733089AF8>("Warcraft III.exe")
DBG-ADDR<00007FF73306A545>("Warcraft III.exe")
<:Exception.Assertion>

Registers:
   RAX:0x00007ff8729a4a00   RBX:0x0000008c083f1840   RCX:0x0000008c083f1840   RDX:0x0000008c083f1840
   RBP:0x0000008c083f18e0   RSI:0x0000008c083f6ef0   RDI:0x0000000000001204    R8:0x0000008c083f2450
    R9:0x000000000000000a   R10:0x01349cb0b8c7178b   R11:0x0000008c083f2000   R12:0x0000008c083f2450
   R13:0x00007ff7358f2b28   R14:0x0000000000000000   R15:0x00007ff73313d320
   RSP:0x0000008c083f17b0   RIP:0x00007ff734c01859   FLG:0x00000a47
    CS:0x00000033    SS:0x0000002b

    DS:0x0000002b    ES:0x0000002b    FS:0x00000053    GS:0x0000002b

  XMM0:0x00000000 0x00000000 0x00000000 0x00000000  XMM1:0x00000000 0x00000000 0x00000000 0x00000000
  XMM2:0x63726157 0x74666172 0x49494920 0x6578652e  XMM3:0x00000000 0x00000000 0x00000000 0x00000000
  XMM4:0x00000000 0x00000000 0x00000000 0x00000000  XMM5:0x00000000 0x00000000 0x00000000 0x00000000
  XMM6:0x00000000 0x00000000 0x00000000 0x00000000  XMM7:0xbf800000 0x00000000 0x00000000 0x00000000
  XMM8:0x43070000 0x00000000 0x00000000 0x00000000  XMM9:0x3c8efa35 0x00000000 0x00000000 0x00000000
 XMM10:0x3f800000 0x00000000 0x00000000 0x00000000 XMM11:0x3e99999a 0x00000000 0x00000000 0x00000000
 XMM12:0x3f800000 0x00000000 0x00000000 0x00000000 XMM13:0x3f4ccccd 0x00000000 0x00000000 0x00000000
 XMM14:0x00000000 0x00000000 0x00000000 0x00000000 XMM15:0x3f666666 0x00000000 0x00000000 0x00000000
 MXCSR:0x00001fa2
--- end of excerpt ---
--- 2025-12-01 00.00.00 82ca1d6c/Crash.txt ---

<Exception.Summary:>
class std::bad_alloc (bad allocation) DBG-OPTIONS<FunctionsOnly SingleLine> DBG-ADDR<00007FF73309DDBB>("Warcraft III.exe") <- DBG-ADDR<00007FF73458881F>("Warcraft III.exe") <- DBG-ADDR<00007FF7345A28A8>("Warcraft III.exe")  DBG-OPTIONS<>
<:Exception.Summary>

<Exception.Assertion:>
Thread 0x000039dc "Main Thread" [Stack Base: 0x0000004B0A600000 Used Space: 78032/2097152 bytes]
DBG-ADDR<00007FF73309DDBB>("Warcraft III.exe")
DBG-ADDR<00007FF73458881F>("Warcraft III.exe")
DBG-ADDR<00007FF7345A28A8>("Warcraft III.exe")
DBG-ADDR<00007FF7345A1D5A>("Warcraft III.exe")
DBG-ADDR<00007FF7345A2D02>("Warcraft III.exe")
DBG-ADDR<00007FF734588519>("Warcraft III.exe")
DBG-ADDR<00007FF734578AB4>("Warcraft III.exe")
DBG-ADDR<00007FF734570BAC>("Warcraft III.exe")
DBG-ADDR<00007FF734570890>("Warcraft III.exe")
DBG-ADDR<00007FF734570F86>("Warcraft III.exe")
DBG-ADDR<00007FF734570752>("Warcraft III.exe")
DBG-ADDR<00007FF7330F7390>("Warcraft III.exe")
DBG-ADDR<00007FF7330F76DC>("Warcraft III.exe")
DBG-ADDR<00007FF7331077C6>("Warcraft III.exe")
DBG-ADDR<00007FF733119AE4>("Warcraft III.exe")
DBG-ADDR<00007FF733116E6E>("Warcraft III.exe")
DBG-ADDR<00007FF7331173C8>("Warcraft III.exe")
DBG-ADDR<00007FF7331189D5>("Warcraft III.exe")
DBG-ADDR<00007FF7340DD866>("Warcraft III.exe")
DBG-ADDR<00007FF73411BDB9>("Warcraft III.exe")
DBG-ADDR<00007FF73411BA8C>("Warcraft III.exe")
DBG-ADDR<00007FF7340D798E>("Warcraft III.exe")
DBG-ADDR<00007FF7340E232C>("Warcraft III.exe")
DBG-ADDR<00007FF73405D70C>("Warcraft III.exe")
DBG-ADDR<00007FF734056676>("Warcraft III.exe")
DBG-ADDR<00007FF73405642C>("Warcraft III.exe")
DBG-ADDR<00007FF7340E270D>("Warcraft III.exe")
DBG-ADDR<00007FF734028140>("Warcraft III.exe")
DBG-ADDR<00007FF7337A03DD>("Warcraft III.exe")
DBG-ADDR<00007FF733B54CF9>("Warcraft III.exe")
DBG-ADDR<00007FF7330DFF34>("Warcraft III.exe")
DBG-ADDR<00007FF7330DFDAF>("Warcraft III.exe")
DBG-ADDR<00007FF734251EA3>("Warcraft III.exe")
DBG-ADDR<00007FF734253EA0>("Warcraft III.exe")
DBG-ADDR<00007FF73425E813>("Warcraft III.exe")
DBG-ADDR<00007FF73425749F>("Warcraft III.exe")
DBG-ADDR<00007FF73319506B>("Warcraft III.exe")
DBG-ADDR<00007FF733198D64>("Warcraft III.exe")
DBG-ADDR<00007FF733089AF8>("Warcraft III.exe")
DBG-ADDR<00007FF73306A545>("Warcraft III.exe")
<:Exception.Assertion>

Registers:
   RAX:0x00007ff8729a4a00   RBX:0x0000004b0a5ef4a0   RCX:0x0000004b0a5ef4a0   RDX:0x0000004b0a5ef4a0
   RBP:0x0000004b0a5ef540   RSI:0x0000004b0a5f4b50   RDI:0x00000000000039dc    R8:0x0000004b0a5f00b0
    R9:0x000000000000000a   R10:0x2e59a0951684fe3f   R11:0x0000004b0a5efc60   R12:0x0000004b0a5f00b0
   R13:0x00007ff7358f2b28   R14:0x0000000000000002   R15:0x00007ff73313d320
   RSP:0x0000004b0a5ef410   RIP:0x00007ff734c01859   FLG:0x00000a47
    CS:0x00000033    SS:0x0000002b

    DS:0x0000002b    ES:0x0000002b    FS:0x00000053    GS:0x0000002b

  XMM0:0x00000000 0x00000000 0x00000000 0x00000000  XMM1:0x00000000 0x00000000 0x00000000 0x00000000
  XMM2:0x63726157 0x74666172 0x49494920 0x6578652e  XMM3:0x00000000 0x00000000 0x00000000 0x00000000
  XMM4:0x00000000 0x00000000 0x00000000 0x00000000  XMM5:0x00000000 0x00000000 0x00000000 0x00000000
  XMM6:0x0a5f76f0 0x0000004b 0x00000001 0x00000000  XMM7:0xbf800000 0x00000000 0x00000000 0x00000000
  XMM8:0x43070000 0x00000000 0x00000000 0x00000000  XMM9:0x3c8efa35 0x00000000 0x00000000 0x00000000
 XMM10:0x3f800000 0x00000000 0x00000000 0x00000000 XMM11:0x3e99999a 0x00000000 0x00000000 0x00000000
 XMM12:0x3f800000 0x00000000 0x00000000 0x00000000 XMM13:0x3f4ccccd 0x00000000 0x00000000 0x00000000
 XMM14:0x00000000 0x00000000 0x00000000 0x00000000 XMM15:0x3f666666 0x00000000 0x00000000 0x00000000
 MXCSR:0x00001fa2
--- end of excerpt ---