Which version of LM Studio?
LM Studio 0.4.23 (build 1)
Which operating system?
macOS 26.6.2, Apple Silicon (arm64)
What is the bug?
A model can be present in model-index-cache.json with a complete, valid entry while the running app does not know about it at all. The model is missing from "My Models" and from lms ls, and the app logs Indexed model not found for that exact identifier.
So the on-disk index and the runtime disagree about which models exist. The indexer clearly succeeded — it wrote a full entry — but the runtime never loaded that entry back.
In my case the affected model is mlx-community/granite-4.0-h-micro-8bit (MLX / safetensors). The directory got there by being copied into ~/.cache/lm-studio/models/ from a backup rather than downloaded, but I do not think the copy is the interesting part: the indexer accepted the directory and produced a correct entry for it, and another model in the same cache with byte-identical attributes (same permissions, same xattrs, same ownership) displays fine. The failure is that the entry it wrote is not visible to the runtime.
Concretely, after a refresh and after a full restart:
| Source |
Model present? |
~/.cache/lm-studio/.internal/model-index-cache.json |
Yes — valid entry |
lms ls |
No |
| "My Models" in the UI |
No |
| Downloader ("you already have this model") |
Yes |
The index entry is not partial or malformed:
{
"indexedModelIdentifier": "mlx-community/granite-4.0-h-micro-8bit",
"displayName": "Granite 4.0 H Micro",
"arch": "granitemoehybrid",
"format": "safetensors",
"domain": "llm",
"contextLength": 131072,
"sizeBytes": 3401767324,
"sourceDirectoryType": "user",
"concreteModelDirAbsolutePath": "/Users/<me>/.cache/lm-studio/models/mlx-community/granite-4.0-h-micro-8bit",
"containingDirMtime": 1788331235000
}
selfFiles lists all 10 files that belong to the model, and containingDirMtime matches the directory's real mtime on disk. badModels, errors, unclassifiedFiles and conflicts are all empty — nothing was rejected.
Counts, for reference: model-index-cache.json holds 37 entries across 23 unique model directories, while lms ls reports 21 models. Granite appears in the index file and in neither of the other two.
The one workaround I have found is to delete the directory and re-download the model through LM Studio, which makes it appear again.
Logs
From ~/Library/Logs/LM Studio/main.log. This pair repeats on every refresh and on every app start:
[2026-09-02 00:37:01.655] [info] App starting...
[2026-09-02 00:37:02.740] [error] [LMSInternal][LMSAuthenticator][Client=LM Studio][Endpoint=multiplexedOperationTimeConfigSchema] Error in signal handler: Error: Indexed model not found: mlx-community/granite-4.0-h-micro-8bit
at _0x18c84a.getOperationTimeConfigSchemaSignal (/Applications/LM Studio.app/Contents/Resources/app/.webpack/main/index.js:371:21886)
at _0x52fff8.<computed>.getOperationTimeConfigSchemaSignal (/Applications/LM Studio.app/Contents/Resources/app/.webpack/main/index.js:371:78764)
at Object.handler (/Applications/LM Studio.app/Contents/Resources/app/.webpack/main/index.js:645:142093)
[2026-09-02 00:37:02.740] [error] [LMSInternal][LMSAuthenticator][Client=LM Studio][Endpoint=multiplexedLoadTimeConfigSchema] Error in signal handler: Error: Indexed model not found: mlx-community/granite-4.0-h-micro-8bit
at _0x18c84a.getLoadTimeConfigSchemaSignal (/Applications/LM Studio.app/Contents/Resources/app/.webpack/main/index.js:371:19389)
Two details that may narrow it down:
- The error fires about 1.1 seconds after
App starting..., which seems early for a filesystem scan to have completed. Something is asking for this model by identifier from persisted state before the in-memory index has it.
~/.cache/lm-studio/.internal/model-data.json still holds runtime state for the model — lastLoadedTimestamp and lastAttemptedToLoadTimestamp — from when it did work. A model with no such stale entry may not hit this path.
To Reproduce
- Have a model that LM Studio has previously loaded, so it has an entry in
model-data.json.
- Remove its directory from
~/.cache/lm-studio/models/<publisher>/<model>/.
- Put the same directory back (I used
rsync -a from a backup, but any copy that restores the same files should do).
- Refresh the model list, and restart LM Studio for good measure.
- Observe:
model-index-cache.json gains a correct entry for the model, while lms ls and "My Models" do not show it, and main.log logs Indexed model not found for its identifier.
Happy to provide the full index entry, the directory listing, or anything else useful.
Which version of LM Studio?
LM Studio 0.4.23 (build 1)
Which operating system?
macOS 26.6.2, Apple Silicon (arm64)
What is the bug?
A model can be present in
model-index-cache.jsonwith a complete, valid entry while the running app does not know about it at all. The model is missing from "My Models" and fromlms ls, and the app logsIndexed model not foundfor that exact identifier.So the on-disk index and the runtime disagree about which models exist. The indexer clearly succeeded — it wrote a full entry — but the runtime never loaded that entry back.
In my case the affected model is
mlx-community/granite-4.0-h-micro-8bit(MLX / safetensors). The directory got there by being copied into~/.cache/lm-studio/models/from a backup rather than downloaded, but I do not think the copy is the interesting part: the indexer accepted the directory and produced a correct entry for it, and another model in the same cache with byte-identical attributes (same permissions, same xattrs, same ownership) displays fine. The failure is that the entry it wrote is not visible to the runtime.Concretely, after a refresh and after a full restart:
~/.cache/lm-studio/.internal/model-index-cache.jsonlms lsThe index entry is not partial or malformed:
{ "indexedModelIdentifier": "mlx-community/granite-4.0-h-micro-8bit", "displayName": "Granite 4.0 H Micro", "arch": "granitemoehybrid", "format": "safetensors", "domain": "llm", "contextLength": 131072, "sizeBytes": 3401767324, "sourceDirectoryType": "user", "concreteModelDirAbsolutePath": "/Users/<me>/.cache/lm-studio/models/mlx-community/granite-4.0-h-micro-8bit", "containingDirMtime": 1788331235000 }selfFileslists all 10 files that belong to the model, andcontainingDirMtimematches the directory's real mtime on disk.badModels,errors,unclassifiedFilesandconflictsare all empty — nothing was rejected.Counts, for reference:
model-index-cache.jsonholds 37 entries across 23 unique model directories, whilelms lsreports 21 models. Granite appears in the index file and in neither of the other two.The one workaround I have found is to delete the directory and re-download the model through LM Studio, which makes it appear again.
Logs
From
~/Library/Logs/LM Studio/main.log. This pair repeats on every refresh and on every app start:Two details that may narrow it down:
App starting..., which seems early for a filesystem scan to have completed. Something is asking for this model by identifier from persisted state before the in-memory index has it.~/.cache/lm-studio/.internal/model-data.jsonstill holds runtime state for the model —lastLoadedTimestampandlastAttemptedToLoadTimestamp— from when it did work. A model with no such stale entry may not hit this path.To Reproduce
model-data.json.~/.cache/lm-studio/models/<publisher>/<model>/.rsync -afrom a backup, but any copy that restores the same files should do).model-index-cache.jsongains a correct entry for the model, whilelms lsand "My Models" do not show it, andmain.loglogsIndexed model not foundfor its identifier.Happy to provide the full index entry, the directory listing, or anything else useful.