azerothcore / azerothcore/mod-autobalance
Crash: mod-autobalance crash in _IsSummonCloneOfSummoner during respawn of transport NPC.
- Dominant language
- C++
- Stars
- 160
- Forks
- 141
- PR merge metrics
- No merged PRs in 30d
Description
### Current Behaviour
The worldserver crashed with a C0000005 ACCESS_VIOLATION after a creature respawn was triggered.
The crash occurred inside mod-autobalance while AutoBalance was processing creature level/attribute logic during Creature::Respawn().
[8bf01db8498f_worldserver.exe_\[26-5_6-13-9\].dmp](https://github.com/user-attachments/files/28285854/8bf01db8498f_worldserver.exe_.26-5_6-13-9.dmp)
[8bf01db8498f_worldserver.exe_\[26-5_6-13-9\].txt](https://github.com/user-attachments/files/28285853/8bf01db8498f_worldserver.exe_.26-5_6-13-9.txt)
**_Relevant crash path:_**
```
Object::GetUInt32Value()
AutoBalance_AllCreatureScript::_isSummonCloneOfSummoner()
AutoBalance_AllCreatureScript::ModifyCreatureAttributes()
AutoBalance_AllCreatureScript::OnCreatureSelectLevel()
Creature::SelectLevel()
Creature::Respawn()
misc_commandscript::HandleRespawnCommand()
```
**_The creature involved in the crash log was:_**
```
Entry: 31708
Name: Deathguard Barth
SubName: The Cloudkisser
SpawnId / guid: 142827
```
**_Database checks show that this NPC is spawned on map 610 with local transport-style coordinates:_**
```
guid: 142827
id: 31708
map: 610
zoneId: 0
areaId: 0
position_x: -2.74581
position_y: -1.47146
position_z: -17.7765
orientation: 4.67712
```
Additional database checks showed multiple NPCs with the subname "The Cloudkisser" on map 610, suggesting this creature is part of a zeppelin/transport context rather than a dungeon, or raid creature.
**_The crash log also showed a non-null summoner pointer, but the internal object value arrays were unreadable:_**
```
m_int32Values =
m_uint32Values =
m_floatValues =
m_inWorld = 0
```
This suggests AutoBalance may be attempting to read object fields from a creature/unit that is no longer in a safe world state, possibly related to transport handling, grid unload/reload state, or stale summon/summoner references.
### Expected Behaviour
AutoBalance should not crash when a transport NPC or transport-bound creature is respawned.
**_AutoBalance should safely ignore or return early when handling creatures, summons, or summoners that are:_**
- null
- not in world
- attached to a transport
- on transport maps
- partially removed or unloaded
- unsafe to inspect as summon/summoner references
The server should continue running normally, and the respawn command should complete without causing an access violation.
### Steps to reproduce the problem
1. Use AzerothCore rev. 8bf01db8498f 2026-05-24 04:18:34 -0300 (master branch) (Win64, RelWithDebInfo, Static) with mod-autobalance enabled.
2. **_Locate the transport NPC Deathguard Barth:_**
- **Entry:** 31708
- **Name:** Deathguard Barth
- **SubName:** The Cloudkisser
- **guid:** 142827
- **map:** 610
3. Trigger a creature respawn involving this NPC or transport NPCs from The Cloudkisser.
4. AutoBalance processes the creature through **OnCreatureSelectLevel()** during **Creature::Respawn()**.
5. In the crash case, AutoBalance reached **_IsSummonCloneOfSummoner()** and eventually calls **Object::GetUInt32Value()** on an unsafe object, causing an **ACCESS_VOILATION**.
**_Note:_** The crash may be state-dependent. After the original crash, manually going to the zeppelin and forcing a respawn again did not immediately reproduce the crash. This may depend on transport state, grid loading/unloading, creature world state, or stale summon/summoner data.
### Extra Notes
The crash appears to be caused by mod-autobalance processing a transport/zeppelin NPC during respawn handling, then attempting to inspect summon/summoner data without enough safety checks.
This does not appear to be a normal database spawn issue or a regular instance creature issue. The affected NPC is part of The Cloudkisser transport crew, which is located outside dungeons/raids.
### AutoBalance Debug Commands
_No response_
### AC rev. hash/commit
AzerothCore rev. 8bf01db8498f 2026-05-24 04:18:34 -0300 (master branch) (Win64, RelWithDebInfo, Static)
### Operating system
Windows 11
### Custom changes or Modules
List of enabled modules:
|- mod-1v1-arena
|- mod-ah-bot-plus
|- mod-ale
|- mod-aoe-loot
|- mod-assistant
|- mod-autobalance
|- mod-breaking-news-override
|- mod-easy-respawn
|- mod-fly-in-old-world
|- mod-junk-to-gold
|- mod-npc-services
|- mod-profession-experience
|- mod-starter-guild
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the crash path through AutoBalance_AllCreatureScript::_isSummonCloneOfSummoner(), ModifyCreatureAttributes(), and OnCreatureSelectLevel() during Creature::Respawn(). Review the supplied dump and text report, then reproduce the Deathguard Barth respawn if possible. Done means transport-related or unsafe summon/summoner states are ignored safely and the respawn command completes without an access violation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- game-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 50/100