casc_extract: "Invalid file length, expected ... got ..." in GameTables\HpPerSta.txt

Open
#10,033 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@micolous is already working on this.

Since Jul 12, 2025.

  • #10399 by @micolous — open

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
25/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
python
Domain
tooling

Research direction

Start with the linked checks in casc_extract/casc.py and casc_extract/casc_extract.py, then run the reported batch extraction on the Retail 11.1.0.59466 CASC store. Investigate why the listed GameTables files have unexpected lengths; done means extraction handles these files correctly without stopping, with the other files still extracting successfully.

Written by the indexing model from the issue text.

Description

Describe the bug

I'm attempting to extract data for a Windows install of Retail v11.1.0.59466. My CASC data also contains an install of wowxptr v11.1.0.59347.

Battle.net and game are not running while extracting, and the game can launch and run successfully from that CASC store.

I'm extracting data with this PowerShell script, in simc's casc_extract directory:

$build = "11.1.0.59466"
python casc_extract.py -m batch -d 'C:\Program Files (x86)\World of Warcraft\' -o "../casc_data/$build/" --product wow

Extraction fails at:

Extracting GameTables\HpPerSta.txt (id=1391642) ...
Usage: casc_extract.py -d wow_install_dir [options] file_path ...

casc_extract.py: error: Invalid file length, expected 343 got 84870439

If I change this line to print an error and then return None instead of exiting:

https://github.com/simulationcraft/simc/blob/1df599cb7091d6f414d40acd61386fee1084e580/casc_extract/casc.py#L445-L447

And then also replace sys.exit(1) with print("extraction failed") here so it continues trying to extract files after any failure:

https://github.com/simulationcraft/simc/blob/1df599cb7091d6f414d40acd61386fee1084e580/casc_extract/casc_extract.py#L110-L111

The only other failures are:

Extracting GameTables\SandboxScaling.txt (id=1391659) ...
Invalid file length, expected 893 got 0

Extracting GameTables\CombatRatingsMultByILvl.txt (id=1391670) ...
Invalid file length, expected 9926 got 0

Extracting GameTables\ItemLevelByLevel.txt (id=2012881) ...
Invalid file length, expected 476 got 0 

All other files appear to extract successfully.

I've also tried extracting wowxptr 11.1.0.59347, which has the same problems.

If this issue shows up for others, my hunch is that some CASC/BLTE data structure has changed, and this new encoding is only used for some files.

Looking at my IDE search history, I suspect this also failed in some v11.0.x builds, but I forgot to write a bug at the time and just patched around it. 🙈

I don't care about the failing files, so commenting out the checks and allowing some failures is fine for me. 😄

Additional information
  • SimulationCraft Version (required): 1df599cb7091d6f414d40acd61386fee1084e580

  • simc_gui.simc file or contents: n/a

Dominant language
C++
Stars
1.6k
Forks
789
Avg merge
13h 25m
Merged PRs (30d)
52

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from simulationcraft/simc

All issues in simulationcraft/simc

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.