[Engine] "Download and prepare" asks for the full 128 GB on an installed NVFP4 pack: the disk check looks in models\<family-tag><model> while setup writes models\<owner>--<repo>
Maintainers usually reply within 3 days
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 62/100
Research direction
Start in tools/strata_mcp.py around lines 2365-2368, where have_dir is built from the family tag, and compare it with ready_where(), prepared_dir() and the "The model files go in" print in setup.py (around lines 3281-3290 and 9969) to confirm the <owner>--<repo> layout. Change the readiness probe to check that repo-based folder first, keeping the tag path as a fallback, then confirm the NVFP4 check reports partly_downloaded with about 9 GB needed. Done means an already-installed pack no longer triggers the 128 GB disk requirement.
Written by the indexing model from the issue text.
Description
Area
[Engine] (speed, kernels, models, the server and API)
Desktop app, Terminal or source?
Desktop app ("Download and prepare" on the Models page), checked against tools/strata_mcp.py
What happened
Asking to prepare an NVFP4 pack that is already fully on disk (120 GB, 6 .gguf shards, pack/ prepared, all .done marks) is refused for lack of disk space:
not enough free disk space for NVFP4: about 137 GB needed at D:\Strata-data, 122 GB free;
free some space or choose data_dir on a bigger drive (e.g. D:\Strata-data)
That data dir already holds the whole pack. The check looks in a folder setup never writes:
tools/strata_mcp.py:2365-2368
tag = (families[family].get("tag", "") + model) # "nvfp4-" + "NVFP4"
have_dir = target / "models" / tag # <data>\models\nvfp4-NVFP4
partly = (have_dir.is_dir() and any(have_dir.glob("*.gguf*"))) or bool(gguf_dir)
need = (8 if partly else md["download_gb"] + 8) + (1 if vision in ("yes", "gpu", "cpu") else 0)
setup.py stores ready-made packs under <models>\<owner>--<repo>, the repository layout, not under the family tag: ready_where() (setup.py:3281-3285), prepared_dir() (setup.py:3288-3290), and setup itself prints that path at setup.py:9969 ("The model files go in ...").
On this machine:
D:\Strata-data\models\Maximilian228--Qwen3.8-Flash-Next-NVFP4-GPTQ-Strata 6 *.gguf + pack\ prepared ← real location
D:\Strata-data\models\nvfp4-NVFP4 does not exist ← what the check looks for
MODELS["NVFP4"]["repo"] is Maximilian228/Qwen3.8-Flash-Next-NVFP4-GPTQ-Strata, download_gb is 128.0, and the family tag is "nvfp4-", so have_dir is always models\nvfp4-NVFP4. partly is therefore always False for this pack and the "already downloaded" branch (8 GB) is never taken — the tool asks for the full 128 GB download plus headroom on top of the 120 GB already sitting on that drive. The 137 GB in the message is exactly 128 + 8 + 1.
gguf_dir does not cover this case: it is a separate parameter for files fetched by hand, and there is nothing to pass for a pack setup installed itself.
Expected: the readiness probe should use the layout setup writes — MODELS[model]["repo"].replace("/", "--") (or ready_where() / prepared_dir()), with the tag-based folder kept as the fallback for the families that really do use it. An installed pack would then report partly_downloaded: true, disk_needed_gb: 9, and the card would offer a repair rather than a 128 GB download.
Related: #4891 — an engine update leaving stale absolute paths in the run config can make an installed model show as "not installed", which is how this dialog gets reached in the first place. The two together are what a user sees as "it forgot all my models and now says the disk is too small".
Smallest steps or command that reproduce it
- Install the NVFP4 pack on
D:\Strata-data— setup writesmodels\Maximilian228--Qwen3.8-Flash-Next-NVFP4-GPTQ-Strata. - Make the Models page treat it as not installed (e.g. the stale
vision.exepath from #4891, or any doctor failure), so it offers "Download and prepare". - Click it: refused with "about 137 GB needed ... 122 GB free", on a drive that already contains 120 GB of that very pack.
disk_usage("D:\Strata-data")→ 113.7 GiB free (122 GB decimal), whilehave_dirdoes not exist and the repo folder does.
Reproduction status
Reproduced locally
Strata version
0.2.9, Control 0.1.55, engine 0.1.55-windows-x86_64-cuda-cuda13
Graphics card, memory and system
RTX PRO 6000 Blackwell Workstation Edition 96 GB (driver 610.74), 256 GB RAM, Windows 11 Pro
Model, size and settings
Qwen3.8-Flash-Next NVFP4 GPTQ (Maximilian228/Qwen3.8-Flash-Next-NVFP4-GPTQ-Strata, 128 GB download, 6 shards), vision on, data dir D:\Strata-data
Logs
# what the pack folder really is
$ ls D:\Strata-data\models
Maximilian228--Qwen3.8-Flash-Next-NVFP4-GPTQ-Strata (6 *.gguf, pack\ prepared, .done marks present)
# what the prepare check computes
family tag : 'nvfp4-'
MODELS["NVFP4"].repo : Maximilian228/Qwen3.8-Flash-Next-NVFP4-GPTQ-Strata
MODELS["NVFP4"].download_gb : 128.0
have_dir : D:\Strata-data\models\nvfp4-NVFP4 exists=False
real dir : D:\Strata-data\models\Maximilian228--Qwen3.8-Flash-Next-NVFP4-GPTQ-Strata exists=True, gguf=6
need (partly=False) : 128.0 + 8 + 1 = 137 GB
free on D: : 113.7 GiB = 122 GB
- Dominant language
- C++
- Stars
- 11.6k
- Forks
- 1k
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Niko1221/Strata
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Niko1221/Strata#5138 · 2 comments ·
Maintainers usually reply within 3 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Niko1221/Strata#5086 · 1 comment ·
Maintainers usually reply within 3 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 3 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 3 days
-
[Other] Control hangs in platform.system() when Windows WMI is stuck: «Strata Control did not answer within 60 s (models list)», no GPU, nothing loadsPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Maintainers usually reply within 3 days
Similar issues
-
bug module:nodes tests
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
rocketride-org/rocketride-server#3020 ·
Maintainers usually reply within 2 days
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
pocoproject/poco#5636 ·
Maintainers usually reply within 2 days
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
microsoft/cppwinrt#1646 · 7 comments ·
Maintainers usually reply within 1 day