Difference between revisions of "Client Error Analysis"

From wowdev
Jump to: navigation, search
m (0x0040CB6A read 0x????????)
m (0x0040CB6A read 0x3CF23000(?))
Line 46: Line 46:
  004E3C94 CCharacterSelection::SetBackgroundModel
  004E3C94 CCharacterSelection::SetBackgroundModel
  004E4519 SetCharSelectBackground
  004E4519 SetCharSelectBackground
* Updating my *.blps files in (Interface/Glues/Models/UI_<race>) fixed this WoW Error. -- Shard (March 23, 2020)
====0x004DFEDD written 0x???????? (random eax value)====
====0x004DFEDD written 0x???????? (random eax value)====

Latest revision as of 21:42, 23 March 2020

When the WoW client crashes, the error logs usually are not useful to users. They often do contain exact information about what failed though, which can be analysed with reverse engineering the functions mentioned in the error logs. In order to avoid repeating this process, this page tries to give analysis on commonly encountered errors as well as how to resolve them.

The information on this page is highly bound to the client version used. To navigate this site, first choose your client version and architecture, then the error type and follow the instructions on how to read the entries there. Any not entirely exact match is likely to be related but not exactly the described issue.

If your combination of values does not appear in this list, you may try to request help on the usual forums (modcraft, mcnet) which probably linked you here, or try the Wiki Talk page for this page. In either case, people who try to analyse your error will need the full error log as well as the exact client version (including if it is a special, non-official version) of your crash in order to analyse it. As always, more information helps more. If you know what file has caused the issue post that file.

Note that some of these sections may list your exact error but no analysis or fix. Sorry if that's the case. You may want to pressure someone to investigate that issue as mentioned in the paragraph above. Please give more information than there already is, otherwise there is unlikely to be any progress. Usually it means that the error is more complex though, so an incentive might be useful.

Contents Win32

#132 (0x85100084) Fatal Exception

The error messages in this category follow the form

ERROR #132 ...
Program ...
Exception ... (TYPE) ... at section:ADDRESS

The entries in this group are split by TYPE.


This sub category treats TYPE=ACCESS_VIOLATION. The remaining error message should be

The instruction at INSTRUCTION referenced memory at DATA.
The memory could not be ACCESS_TYPE.

The entries here are referring to INSTRUCTION ACCESS_TYPE DATA. Note that ADDRESS and INSTRUCTION should be identical.

0x004057FB read 0x00000004

The server sent you to an invalid map id. The client just finished transfering you there and failed getting the internal name of the map in order to load the ADTs, as the map MapRec entry does not exist in your client.

0x0040CB6A read 0x3CF23000(?)

The exact cause of this error is not really clear. Some BLP file is probably corrupt. To find out which one, you probably need to go down the call stack to find where it came from. One example would be

006A30C1 CGxDevice????::ITexMarkAsUpdated
006848FC CGxDevice::TexMarkForUpdate
00681F55 GxTexUpdate
004B7E58 some blp parsing stuff
004BA140 AsyncFileReadWait
004E3C94 CCharacterSelection::SetBackgroundModel
004E4519 SetCharSelectBackground
  • Updating my *.blps files in (Interface/Glues/Models/UI_<race>) fixed this WoW Error. -- Shard (March 23, 2020)

0x004DFEDD written 0x???????? (random eax value)

EAX=BE860A92  EBX=000000E0  ECX=1075D208  EDX=00000017  ESI=0B748B40
EDI=0000000B  EBP=02A7F9C0  ESP=02A7F9C0  EIP=004DFEDD  FLG=00010282
CS =001B      DS =0023      ES =0023      SS =0023      FS =003B      GS =0000

004DFEDD 02A7F9C0
004E2131 02A7FB4C
004E24CA 02A7FB70
0085651C 02A7FB8C
0085898A 02A7FC18
008567E7 02A7FC34
0084EC46 02A7FC48
00855B33 02A7FCA4
008569A9 02A7FCCC
0084EC9F 02A7FCF8
0081A17B 02A7FD60
0081A2E0 02A7FD7C
0096F10A 02A7FD9C
0096FDAD 02A7FDB4
009623E8 02A7FDC8
0096FC57 02A7FDEC
0049482D 02A7FE40
00480B79 02A7FE70
0047FF7B 02A7FEB8
004802CE 02A7FEFC
0048047D 02A7FF20
0047F132 02A7FF40
0047F29A 02A7FF94
0047F2E1 02A7FFAC
0040B7D8 02A7FFB4
  • This error appears when I am in the character creation screen, I used a converted version of Pandaren model and Worgen, when Im in a different race like Felorc for example and I select the Pandaren race the crash appear but if I enter in Character creation screen and the Pandaren race is default selected no problem appears. -- ruffo91 (July 21, 2014)
    • Races are hard coded. Selecting death knights will also crash most likely. Only reusing existing races will correctly work. Also, do not change internal names for them. Same for classes. Every non-existing race/class is a potential crash. -- Schlumpf (talk) (July 22, 2014)
      • 2 races crash me the client and I have 24, I think that the problem is in CharSectionsRec or in the model so not totally sure. -- ruffo91 (July 22, 2014)

0x004E0A9B read 0x0000001C

0x004E4191 read 0x00000070

EAX=00000000  EBX=00000000  ECX=00000070  EDX=00000000  ESI=00000013
EDI=0001B97B  EBP=0376F814  ESP=0376F600  EIP=004E4191  FLG=00010293
CS =0023      DS =002B      ES =002B      SS =002B      FS =0053      GS =002B

004E4191 0376F814
004E45EA 0376F820 GlueXML function SelectCharacter

0x005CE0C8 read 0x00000010

  • Upon entering character -> Skills on a newly created race (raceid 22) -- Ascathos (May 28, 2015)

0x006844E8 read 0x???????? (random bogus value)

While trying to push a vertex buffer during rendering, a vertex attribute had a bogus index. The context of this depends on the callers of CGxDevice::PrimVertexPtr, which can be many (at least 61).

This is probably an out of bounds write somewhere. The description for vertex attribs is between 0x00C60000 and 0x00C60300, which should be initialized by static construction, but likely was overwritten. The register values may help:

  • eax is the vertex attrib information. The memory pointed to is the corrupted memory. Watchpoint this.
  • ecx is the value that should be ≤ 14 but likely is some bogus huge value.
  • edx is the gxDevice pointer.

0x0072DA70 read 0x????????

  • unknown CreatureModelData.ID for NPC displayID, meaning client could not find model ID in #2 column of CreatureDisplayInfo.dbc. Check your CreatureDisplayInfo.dbc, there will be somewhere link to not existing model ID from CreatureModelData.dbc. -- Amaroth (December 21, 2014)

0x007A07E4 read 0x******** (random address on heap)

EAX=1D30EF51  EBX=25B15BA0  ECX=00000006  EDX=00000040  ESI=000001C9
EDI=25B141C0  EBP=036DFA6C  ESP=036DFA58  EIP=007A07E4  FLG=00010212
CS =0023      DS =002B      ES =002B      SS =002B      FS =0053      GS =002B

007A07E4 036DFA6C
007B56C4 036DFA88
007B6B59 036DFBBC
00783357 036DFBD8
004FAAE4 036DFC98
004FB036 036DFD24
00485128 036DFDE4
00494F67 036DFE00
0049545B 036DFE1C
004A8A42 036DFEE8
00480B79 036DFF18
0047DC89 036DFF40
0047F29A 036DFF94
0047F2E1 036DFFAC
0040B7D8 036DFFB4

Something ADT related, it calculates a tile index and gets a pointer to something for it, but that pointer is bogus.

0x007A39D7 written 0x******** (random eax value)

EAX=43E2C70D  EBX=0364FAB4  ECX=19EDEE18  EDX=00000000  ESI=00001008
EDI=12D1F4C8  EBP=0364F9D0  ESP=0364F92C  EIP=007A39D7  FLG=00210202
CS =0023      DS =002B      ES =002B      SS =002B      FS =0053      GS =002B

007A39D7 0364F9D0
007A3B64 0364FA3C
007A3C51 0364FA7C
00605F05 0364FAF0
006074DA 0364FBC0
00607B76 0364FBD8
004FA7C1 0364FC98
004FB036 0364FD24
00485128 0364FDE4
00494F67 0364FE00
0049545B 0364FE1C
004A8A42 0364FEE8
00480B79 0364FF18
0047DC89 0364FF40
0047F29A 0364FF94
0047F2E1 0364FFAC
0040B7D8 0364FFB4
  • Possibly something to do with ADT corruption? But then I can't see any reason why that would have occured. -- Laduguer (May 26, 2014)
    • Fixed it. It was an issue with massive .wmo duplication. -- Laduguer (May 26, 2014)

0x007AF613 read 0x******** (random eax value)

When calculating distances to portals, a portal reference has a groupIndex that is invalid. The client tries to read that group's flags but hits uninitialised memory.

Ensure that all portals lead to existing groups. Note that the WotLK parser ignores chunk magics and determines by order. If an unknown chunk is there, it will end up with bad data for following chunks.

0x007B31F8 read 0x00000010

This issue is caused by the ADT referencing a detail doodad ID that is not given in the DBC, either by saving incorrectly or not editing the DBC correctly. This can be fixed by adding an entry to GroundEffectTextureRec for all IDs or by removing the id from the ADT.

This is a bug that has happened with certain versions of Noggit which should be fixed these days. The detail here is ADT's MCNK's ReallyLowQualityTextureingMap which references an non-existing layer. This is fixed and broken again in up to date versions of Noggit. Loading and saving an ADT with such intermediate a version will fix the issue automatically. This is a known Noggit issue, sorry.

Basically, each chunk can contain 4 textures (each on a layer), which each can have a specific applied groundeffect ID. The ID is further defined within the .dbc, however, this is not important. The most important thing is simple; Wow tries to visual a groundeffect for a texture that is not existing. On a chunk with 3 layers, but 4 ground effects noted, it is bound to lead to a crash.

A simple fix is easy; simply use the texture painter, apply some texture, set it to some size but the lowest speed and apply it onto the adt, until every chunk has 4 layers. The crashes stop.

0x007B4D14 read 0x00000071

Related to #0x007B4D61_read_0x00000071 obviously.

EAX=00000001  EBX=0000003F  ECX=00000001  EDX=00000FFF  ESI=18BFE974
EDI=00CE88CC  EBP=038DDA28  ESP=038DD9B4  EIP=007B4D14  FLG=00010202
CS =0023      DS =002B      ES =002B      SS =002B      FS =0053      GS =002B

007B4D14 038DDA28
007B5CF5 038DFA8C
007B6B4E 038DFBBC
00783357 038DFBD8
004FAAE4 038DFC98
004FB036 038DFD24
00485128 038DFDE4
00494F67 038DFE00
0049545B 038DFE1C
004A8A42 038DFEE8
00480B79 038DFF18
0047DC89 038DFF40
0047F29A 038DFF94
0047F2E1 038DFFAC
0040B7D8 038DFFB4
75A5C002 038DFFEC

0x007B4D61 read 0x00000071

EAX=00000001  EBX=00000000  ECX=00000001  EDX=00000FC0  ESI=1155D030
EDI=00CE87D0  EBP=0385DA28  ESP=0385D9B4  EIP=007B4D61  FLG=00010202
CS =0023      DS =002B      ES =002B      SS =002B      FS =0053      GS =002B

007B4D61 0385DA28
007B5CF5 0385FA8C
007B6B4E 0385FBBC
00783357 0385FBD8
004FAAE4 0385FC98
004FB036 0385FD24
00485128 0385FDE4
00494F67 0385FE00
0049545B 0385FE1C
004A8A42 0385FEE8
00480B79 0385FF18
0047DC89 0385FF40
0047F29A 0385FF94
0047F2E1 0385FFAC
0040B7D8 0385FFB4
  • Seems to be related to WDT. Try redoing that. (At least, there is CBarrier code nearby.) -- Schlumpf (talk) (July 04, 2013)

0x007C59EA read 0x******** (random address on heap)

0x007C81ED read 0x00000017

  • Get this error when set flags of wmo group to 2001(Has MOBN and MOBR chunk. + Indoors.) when group file has a MCCV chunk. If I set flags to 2005(Has MOBN and MOBR chunk. +Has MCCV chunk. + Indoors.) then it was fine(no error). If I set flags back to 2001 and delete MCCV chunk then I get #0x007C81ED_read_0x00000027 -- Supora (July 26, 2015)

0x007C81ED read 0x00000027

  • So it seems that indoor parts can't be rendered and get this error if: a) indoor batches in MOGP chunk is more then 0, b) This indoor part doesn't have MCCV chunk and flag for it. So to solve this problen you need to have flag "Has MCCV" and MCCV chunk in this indoor part. -- Supora (July 26, 2015)

0x007C8DA0 read 0x******** (random address on heap)

Broken MLIQ chunk in WMO. In CMapObj::IdentifyLegacyLiquidType(): what the wiki refers to as "types?" appears to have too few entries, never ending in a byte&0xf that is not 0xf.

0x007CC41F read 0x******** (bogus value)

Your WDL file is broken. The WotLK parser is very picky about the files it reads. It assumes that if there is a WDL#MWMO chunk as the first chunk, the WDL#MWID and WDL#MODF chunks follow in that order. Otherwise, or after the three, it *will* be WDL#MAOF. In your case, the first three have been fine or not present, but there was no valid WDL#MAOF chunk.

Alternatively, your WDL#MAOF chunk has a bad offset in one of the entries.

0x007D6B51 read 0x******** (random probably register value)

  • Using Noggit 1.2. The ADT didn't had water, I used the CMD program CopyWater and I replaced the original ADTs, which didn't crash when launched, with the "fixed" ones. When I applied them to the WoW data folder I instantly crashed. -- andrejmega (July 30, 2014)

0x007D74B6 read 0x******** (random address on heap)

Reading MOMT of an WMO went terribly wrong. Either the file's size is smaller than it should be, opening the file failed somehow of the chunks before MOMT (MOTX) indicate a bad size. You may encounter this error with WMOs "ported" from other versions (i.e. MoP+). You should never encounter thus with not a single WMO on the ADT. Removing them all or fixing the corrupted one should fix this thus.

It should be possible to reproduce this with an WMO being

00 00 00 00  00 00 00 00  00 00 00 00  FF FF FF FF 00

only. (I.e. infinite MOTX, thus invalid access on MOMT.)

0x007EBF50 read 0x00000000

  • Error comes from Light.dbc, light settings, which were attempted to be loaded, have refference to non-existing LightParams.dbc.ID. Check Light.dbc settings (incorrectly often called skyboxes) in your vicinity (using LightMapper) and make sure that all of them have correct IDs in last 8 of their fields. Information about tools and DBCs included can be found on my channel. -- Amaroth (June 24, 2017)

0x007F69D1 read 0x00000000

Trying to call GtBarberShopCosts?Rec for an entry that does not exist. Fix your game tables.

The very same error can appear when you are lvl 101+ Druid and you try to preview characters Base stats table and the second occasion is when you are any class of level 101+ adn you try to sit on Barber chair

0x0082C7C9 read 0x??????? (never reported)

  • error caused by NPC DisplayID if it uses CreatureDisplayInfoExtra.dbc and its CreatureDisplayInfoExtra.Texture (21st column, or 20th if zero-based) is set to "" (empty string). Solution - enter texture name (even wrong and thus not working name will make NPC with such displayID/player with such morph stop causing this WoW Error). -- Amaroth (September 05, 2014)

0x008347AA read 0x00000008

Related to MCIN according to Will.

0x00836D11 read 0x00000000

Bad -shader type. This client only supports 0, 1 = Combiners_Opaque_Mod2xNA_Alpha, 2 = Combiners_Opaque_AddAlpha, 3 = Combiners_Opaque_AddAlpha_Alpha.

0x0087307D read 0x????????

A CShaderEffect was set to an invalid vertexPermute or there was no s_curEffect. This likely means you are trying to use a non-existent shader somewhere.

0x00C26EC9 read 0x13291000

0x00F16EC9 read 0x153AE000

0x012A6EC9 read 0x12DB2000

0x776B2A83 read 0x5C523282

Caused by MAX_RACES (charactercreate.lua) not matching the amount of buttons in charactercreate.xml.

0x77A871D3 read 0xC3D6954D

0x77E8CECF read 0x00000014


This sub category treats TYPE=INT_DIVIDE_BY_ZERO. The remaining error message should be empty.

The entries here are referring to ADDRESS. Since the address alone might not be sufficient to track an issue, the remainder of the stack trace in the error log may be included.


A .skin file's skin section has boneCount = 0.

#134 (0x85100086) Fatal Condition

Errors of form ERROR #134 (0x85100086) Fatal Condition usually either have a human readable error message, or have no other easy to understand content in the error log (or the error popup).

To identify your error in this list, you will either have to match the message given in the error dialog or pretty much on top of the error log, or you need to look at the stack trace of the current thread (Search your error log for --- Thread ID: xxxx [Current Thread] ---. This is likely to be the first block after the CVars and GX Info blocks). It will likely be enough if the first few lines match. Only the first column in the error log is relevant and given here. Note that the first value always is 00772AB5 and thus omitted to prevent people from finding the wrong entry.

007B88C3 007B9AA9 007B9C7A... CMapChunk::UnpackAlphaShadowBits(): Bad genformat.

The format of alpha map data and the data does not match up: The MCNK flags tell that the alpha channels shall be "fixed", but the alpha channel format is not unfixed4444. Either set the flag, or ensure the channels have unfixed data.

007BD4BA 007D80ED 007B0D03... CMap::SafeOpen() failed

A filename for a WMO should be given in the error message. The given file is either missing or could not be opened for a different reason. At this point, the file has not yet been opened, so the content is irrelevant. It is also not a group-WMO, but exactly the file given.

007BD4BA 007D8674 007AE1AE... CMap::SafeOpen() failed

See #007BD4BA_007D80ED_007B0D03..._CMap::SafeOpen.28.29_failed but replace root WMO with group WMO.

007BD4BA 007D7166 007D9A66... CMap::SafeOpen() failed

See #007BD4BA_007D80ED_007B0D03..._CMap::SafeOpen.28.29_failed but replace WMO with ADT.

007BF8E3 007BFDDC 007814B7... CMap::LoadWdt() failed

A filename for a WDT should be given in the error message. The given file is either missing or could not be opened for a different reason. At this point, the file has not yet been opened, so the content is irrelevant. The broken file is exactly the file given, not any other related one.

008889CE 006D7A9E 00725F73...

The client is trying to get the collision volume for a unit. The CreatureDisplayInfoRec of that unit does not exist in the client. If the CreatureDisplayInfoRec of that unit exists in the client, it references a CreatureModelDataRec that does not exist.

0489F818 0001:00371AB5... UnpackAlphaShadowBits():Bad genformat

You have generated additional ADTs for a map using a different ADT template; look at your ADTs. Use the template which matches the size of your empty ADT files, ideally going to a backup of your map first. Win64

#132 (0x85100084) Fatal Exception

The error messages in this category follow the form

ERROR #132 ...
Program ...
Exception ... (TYPE) ... at section:ADDRESS

The entries in this group are split by TYPE.


This sub category treats TYPE=ACCESS_VIOLATION. The remaining error message should be

The instruction at INSTRUCTION referenced memory at DATA.
The memory could not be ACCESS_TYPE.

The entries here are referring to INSTRUCTION ACCESS_TYPE DATA. Note that ADDRESS and INSTRUCTION should be identical.

0x0XXXXXea7e read 0x00000010 (Similar offsets)

Crash happens upon initializing/loading gameobjects (either PLAYER_ENTER_WORLD or in loading screen). Trying to spawn a non-valid .m2 or .wmo as gameobject, e.g. invalid filedata entry, group_wmo file, blp file, etc.