It's not supposed to crash. It's supposed to end the game. Does it at least do that?
function PreloadFiles takes nothing returns nothing
if ReloadGameCachesFromDisk() then
call SetPlayerName(GetLocalPlayer(), "This map cannot be played in single player.")
call EndGame(true)
endif
endfunction