Skip to content

feat: Jan should validate GGUF when downloading local models #5266

@jingcodeguy

Description

@jingcodeguy

Jan version

0.5.17

Describe the Bug

Hi team, thanks again for building Jan – I really appreciate the thoughtful design and smooth user experience.
(Used AI to fix the English)

Observation:
I noticed that Jan allows you to load and interact with a model even if it hasn’t been fully downloaded. There’s no error or warning shown during the loading phase. I only realized the model was incomplete when trying to open the same .gguf file in another LLM tool, which immediately flagged it as corrupt/incomplete.

I’m not sure if this is intended behavior, but at the very least, it might be helpful to warn the user if the model file is not fully downloaded or is partially present.

Why this might be an issue:
False confidence: Users may assume the model is fully functional, but some parts might be missing.

Silent errors: This can cause subtle malfunctions or hallucinations that are hard to diagnose.

Inconsistent behavior across platforms (Jan vs other tools) adds to confusion when switching tools or debugging.

Frustration for offline users who may have spotty connections or interrupted downloads.

Suggestions:
Add a file integrity check (e.g. size, hash, or basic structure validation) before loading the model.

Display a warning or visual indicator if the model file appears to be incomplete or corrupt.

If possible, support resumable downloads, especially for large .gguf models – this would make the user experience more resilient on unreliable connections.

Optionally, block loading until the model passes a minimal validity check (e.g. metadata header or quantization block presence).

Even a small visual hint or status label would help users quickly identify and fix the issue.

Thanks again – happy to test or provide examples if needed!

Steps to Reproduce

No response

Screenshots / Logs

No response

What is your OS?

  • MacOS
  • Windows
  • Linux

Metadata

Metadata

Labels

No labels
No labels

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions