Whisper Large Turbo download rejected as "missing or corrupted" again — expectedDownloadBytes outdated after HF update on Oct 16 (regression of #785)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 72/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- macos, swift
- Domain
- desktop-dev, machine-learning
Research direction
Start by finding isModelFileValid and the .whisperLargeTurbo definition of expectedDownloadBytes, then trace how the downloaded GGUF file is validated and deleted from ~/Library/Caches/WhisperModels. Reproduce with Whisper Large Turbo or a focused validation test that supplies the new upstream byte size. Done means a complete download from the selected source is retained and activates successfully without depending on the outdated hardcoded size.
Written by the indexing model from the issue text.
Description
Describe the bug
Activating Whisper Large Turbo ("Higher Quality but Faster") always fails right after the download reaches 100%:
Provider preparation failed: Whisper model file is missing or corrupted. Please re-download the model.
The downloaded file is deleted, ~/Library/Caches/WhisperModels stays empty, and every retry re-downloads ~845 MB and fails the same way.
This is the same bug as #785 (fixed in #787), now recurring.
Root cause: isModelFileValid requires an exact match with expectedDownloadBytes, which is 886_381_760 for .whisperLargeTurbo in v1.6.11. The handy-computer/whisper-large-v3-turbo-gguf repo was updated on Oct 16, 2026 (commits c70af6f "Correct license metadata" and 18ada75 "Add LICENSE and NOTICE…"), and the file on main is now 886,871,018 bytes. A complete, valid download (HTTP 200, size matches Content-Length) is therefore rejected and deleted.
Workaround: download the previous revision (ceea6c8), whose size matches the hardcoded value:
REV=ceea6c8a94a21ab85be244d311e874a39344dbf5
mkdir -p ~/Library/Caches/WhisperModels
curl -L --fail -o ~/Library/Caches/WhisperModels/whisper-large-v3-turbo-Q8_0.gguf \
"https://huggingface.co/handy-computer/whisper-large-v3-turbo-gguf/resolve/$REV/whisper-large-v3-turbo-Q8_0.gguf"
After restarting the app, the model activates without re-downloading and works fine.
Suggested fix: since this is the second time an upstream metadata change broke validation, updating the constant again will only fix it until the next upstream commit. More durable options:
- Pin Whisper download URLs to a specific commit (
/resolve/<commit>/…) instead ofmain, so the expected size always matches; - and/or validate against a checksum (e.g. sha256 via
X-Linked-ETag) instead of a hardcoded byte size; - log expected vs. actual size when validation fails, to make this easier to diagnose.
The other handy-computer Whisper GGUF repos may have received the same metadata update (not verified).
Reproduction steps
- Fresh install of FluidVoice 1.6.11 via Homebrew (
brew install --cask fluidvoice) - Open Voice Engine (or onboarding) → select "Higher Quality but Faster" (Whisper Large Turbo)
- Click "Download & Activate"
- Wait for the download to reach 100% (~845 MB)
- Error dialog appears: "Voice Model Setup Failed — Whisper model file is missing or corrupted"
- Check
~/Library/Caches/WhisperModels→ the folder is empty (the downloaded file was deleted)
Expected behavior
After the download completes, the model passes validation, is saved to ~/Library/Caches/WhisperModels/whisper-large-v3-turbo-Q8_0.gguf, and activates.
Actual behavior
The download completes successfully (HTTP 200, 886,871,018 bytes, matches Content-Length), but isModelFileValid rejects the file because its size doesn't match the hardcoded expectedDownloadBytes (886,381,760), deletes it, and shows the "missing or corrupted" error.
App Version
1.6.11
macOS Version
macOS 26.5 (Tahoe), MacBook Pro 16" M5 Pro, 48 GB
Architecture
Apple Silicon
Logs or crash report
[WhisperProvider] WhisperProvider: Model downloaded successfully
[ASRService] ASRService: First prepare attempt for Whisper (Universal) failed after 74.21s
[ASRService] ASRService: First prepare failed for Whisper (Universal): Error Domain=WhisperProvider Code=-3 "Whisper model file is missing or corrupted. Please re-download the model." Attempting a single recovery by clearing provider cache.
[ASRService] ASRService: Provider cache was empty; recovery retry disabled after first failure for Whisper (Universal).
[ASRService] ASR initialization failed with error: Error Domain=ASRService Code=-2000 "Provider preparation failed: Whisper model file is missing or corrupted. Please re-download the model."
CFNetwork summary for the download: response_status=200, response_bytes=886871018
Screenshots or screen recording
No response
- Dominant language
- Swift
- Stars
- 11.9k
- Forks
- 863
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 28
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 altic-dev/FluidVoice
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
altic-dev/FluidVoice#1191 ·
Maintainers usually reply within 1 day
-
[BUG] File transcription skips audio chunks shorter than one secondPossibly taken @sabbah13 claimed this 5 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
altic-dev/FluidVoice#1161 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 56/100
altic-dev/FluidVoice#1202 ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 55/100
altic-dev/FluidVoice#1201 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
altic-dev/FluidVoice#1200 ·
Maintainers usually reply within 1 day
All issues in altic-dev/FluidVoice
Similar issues
-
accessibility bug medium-priority mobile
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
lognorman20/monaco#6247 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
swiftlang/swift-format#1312 ·