KoboldCpp Not Working? Every Fix (2026): Won't Open, Could Not Load Model, Not Using the GPU, Slow, Not Connecting
When KoboldCpp does not work, it almost always tells you why, in the black console window that opens beside it. The difficulty is that on a fatal error the window closes two seconds after the message is printed.
That is not a guess. The function in the code that handles a fatal error prints the message, waits two seconds, and exits. If you started KoboldCpp by double-clicking it or by dragging a model onto it, the window is gone before you have read the first word.
So this guide begins with how to keep the message on screen, and then goes through what the messages mean. We read KoboldCpp’s source code on the concedo branch, which was version 1.122.1 on 10 October 2026, then the project’s wiki and its release notes. Messages in italics are copied from the code.
For what each launcher option does and what the defaults are, see KoboldCpp settings. For a first setup with SillyTavern, see the KoboldCpp setup guide. For problems on the SillyTavern side, see SillyTavern not working.
The Short Answer
| What you see | The most likely reason | Go to |
|---|---|---|
| The window opens and closes | A fatal error you could not read | Read the console |
| Nothing opens at all | The wrong file for your PC, or a blocked program | It will not open |
| Cannot find text model file | The path to the model is wrong | Cannot find, could not load |
| Could not load text model | Not enough memory, or a file the engine cannot read | Cannot find, could not load |
| Replies come one slow word at a time | The model is on the processor | Not using the GPU |
| Unable to detect VRAM | The system tool that reports card memory is missing | Not using the GPU |
| A long pause before each reply | The whole prompt is being read again | Slow |
| It was faster before the update | The default context size went up | Slow |
| SillyTavern shows no connection | Wrong address, wrong API type, or a password | Not connecting |
| Server is busy; please try again later. | The request queue is full | Not connecting |
| Images, voice or search do nothing | That feature’s model or switch was never loaded | Features |
First: Read the Console
Everything else on this page depends on this step.
On Windows:
- Open the folder where
koboldcpp.exeis. - Click the address bar of the folder window, type
cmdand press Enter. A command prompt opens in that folder. - Type
koboldcpp.exeand press Enter.
The launcher opens as usual. The difference is that when KoboldCpp stops, the command prompt stays, with the last messages still on it. The wiki gives the same instruction for a program that “just closes”: “relaunch koboldcpp via the command prompt/terminal, and read the error message printed on the console.”
On Linux or macOS, start the file from a terminal.
If you use the launcher window, a fatal error is shown in a message box, so you do see it. The two-second problem is for people who start KoboldCpp with a saved config, a shortcut, or a model dragged onto the program.
A healthy start ends with these lines:
- Load Text Model OK: True
- Embedded KoboldAI Lite loaded.
- Starting Kobold API on port 5001 at …
- Please connect to custom endpoint at …
If you see the last line, KoboldCpp itself is working, and the problem is in the connection or in the settings.
It Will Not Open
You may have the wrong file
The release page has several downloads, and the right one depends on your PC. This is the description from the release notes:
| File | For |
|---|---|
koboldcpp.exe or koboldcpp-linux-x64 | NVIDIA graphics cards |
oldpc | ”an older CPU or older NVIDIA GPU” where the main file “does not work” (CUDA 11 and AVX1) |
nocuda | No NVIDIA card, or no need for CUDA. Smaller |
koboldcpp-mac-arm64 | Apple M-series Macs |
If the main file crashes at once on an older computer, try oldpc before anything else.
Old processors
Some older processors do not support AVX2, an instruction set the fast builds need. The wiki’s answer is the flag --noavx2, or the “Old CPU, no AVX2” preset in the launcher. If that also fails: “as a last resort, you can try enabling ‘Failsafe’ mode”. Both are slow, and the wiki says plainly that “GPU support is not enabled for these modes”.
One fix from the release notes belongs here. Version 1.120 (29 August 2026) “Fixed a bug where failsafe mode was incorrectly selected”. If an older version put you in failsafe mode without being asked, update.
Windows blocks it
KoboldCpp is a single file that unpacks itself into a temporary folder each time it starts. The code looks for that temporary folder and cleans up old ones. Security software sometimes stops a program that does this. SillyTavern’s page for KoboldCpp describes the common case: “You may see a pop-up from Microsoft Defender, click Run Anyway.”
People also search for a “failed to extract” message. We did not find that text in KoboldCpp’s own code. It comes from the tool that packs the program into one file, and it means the unpacking step did not finish. Two things from the project’s documentation help:
- Make sure the download is complete. Download it again from the GitHub releases page.
- The wiki describes
--unpack, which writes the program’s contents into a normal folder once. You can then run it from there with Python.
The launcher window has a problem
The launcher is built with a Python library called customtkinter. If you run KoboldCpp from source and the library is missing, the code’s message is: “File selection GUI unsupported. customtkinter python module required! You must use the command line instead”. The wiki adds that on Linux you may need Zenity or YAD for the file picker, and that with Wayland and fractional scaling above 100% the launcher has display problems.
You do not need the launcher. --skiplauncher and a model path on the command line start KoboldCpp without it.
Windows 7 and phones
The wiki says Windows 7 “is not a recommended OS” and needs one of the old-CPU modes. For Android, it says running a model on the phone “is probably not optimal as it’s likely to be slow and memory limited”, and describes building KoboldCpp inside Termux for those who want to try. There is no official app.
You may not have KoboldCpp at all
The developers posted a warning on 26 September 2026 about a website at the address koboldcpp.com. They say it is not theirs, that it copies the project’s look, and that it uses pop-ups “to mislead visitors into downloading malware”. They also say it sometimes appears above the real project in search results.
We did not visit or test that site. If what you downloaded did not come from the GitHub releases page of the account LostRuins, delete it and get the real one.
”Cannot Find” and “Could Not Load” Are Different Errors
The code has two families of error for every kind of model, and it helps to know which one you have.
| Message | Exit code | Meaning |
|---|---|---|
| Cannot find text model file: (path) | 2 | The file is not at that path |
| Could not load text model: (path) | 3 | The file is there, and the engine could not load it |
The same pair exists for the other model types: Cannot find image model file and Could not load image model, Cannot find whisper model file and Could not load whisper model, Cannot find tts model files and Could not load TTS model!, and so on for vision projectors and embeddings.
Cannot find
This is about the path and nothing else.
- The file was moved or renamed after you saved a config. A
.kcppsfile stores the path. - The drive letter changed, which happens with external drives.
- The path has a typing mistake on the command line. Put a path with spaces inside quotation marks.
Could not load
The file exists. The engine tried and failed. Scroll up in the console, because the lines above the message usually say more. The causes, most common first:
Not enough memory. The model, the context cache and anything else you loaded must fit in your card’s memory plus your system memory. Lower the context size first. The default is now 16,384 tokens, which is more than many older setups used. Then lower the GPU layers, or choose a smaller file of the same model. The wiki’s own advice for allocation errors is to reduce the context and to try a batch size of 128 or 64.
The file is not a GGUF model. The code checks the file name and warns: “WARNING: Selected Text Model does not seem to be a GGUF file! Are you sure you picked the right file?” A .safetensors file from a model’s main page is not a GGUF file. Look for the GGUF version of the model.
The model is newer than your KoboldCpp. New model families need support in the engine. Nearly every release note has a line like “new model support”. If a model from this month fails on a version from the spring, update first.
The download is damaged or the conversion is bad. The wiki: “Bad quantizations do exist”. The notes for version 1.120 warn about two specific new models: “there are bad quants floating out there, so make sure you use the right files.” Download the file again, or from a different uploader.
A second model failed, not the first. If you load an image model, a voice model and a text model together, read which one the message names. Each takes memory. Version 1.121 added a small safety here: “Prevent segfault on model load failure”, so a failed load now ends with a message more often than with a silent crash.
It Runs, But Not on the GPU
The symptom is speed: one or two words per second on a model that should be fast. The cause is that the layers are on the processor.
Read these console lines
| Console line | Meaning |
|---|---|
| Auto Selected CUDA Backend | An NVIDIA card was found and will be used |
| Auto Selected Vulkan Backend | A card was found through Vulkan |
| Auto Selected Default Backend | No GPU backend. The processor will be used |
| Detected Available GPU Memory: … MB | The card’s memory was read |
| Unable to determine GPU Memory | It was not read |
| Auto Recommended GPU Layers: … | The first estimate of layers |
| GPU layers is default: Will enable AutoFit… | Autofit is deciding the layers |
| No GPU backend found, or could not automatically determine GPU layers. | Layers were set to zero |
| WARNING: GPU layers is set, but a GPU backend was not selected! GPU will not be used! | You chose the CPU option and also asked for layers |
The causes
The CPU option is selected. The last line in the table is the code’s own warning for it. In the launcher, change the backend from “Use CPU” to the CUDA or Vulkan option.
You have the wrong download. The nocuda file has no CUDA in it. That is what “no CUDA” in its name means. It is not a fault. On an NVIDIA card, use the main file. On AMD or Intel, nocuda is the right file, and Vulkan is the option.
You have an AMD card and chose CUDA. CUDA is for NVIDIA only. The release notes: “If you’re using AMD, we recommend trying the Vulkan option in the nocuda build first, for best support.” A separate ROCm build exists for Linux. Errors that name a hipblas file belong to that ROCm route, which is the AMD version of the CUDA path.
GPU layers is zero. Zero means no offload. The default is -1, which lets autofit decide. See the settings guide for what autofit does.
”Unable to detect VRAM”
KoboldCpp does not ask the graphics driver directly how much memory the card has. The code runs small system programs and reads their output: nvidia-smi for NVIDIA, vulkaninfo for Vulkan, and rocminfo for AMD’s ROCm. If the program for your card is not installed, or fails, the memory figure stays at zero and you get Unable to detect VRAM or Unable to determine GPU Memory.
This does not mean the card cannot be used. It means the automatic estimate has nothing to work with. Two ways forward:
- Install or repair the tool.
nvidia-smicomes with the NVIDIA driver.vulkaninfocomes with the Vulkan tools for your system. On Linux it is often a separate package. - Do it by hand. Choose the backend yourself and type a number of GPU layers.
Version 1.99.4 (21 September 2025) “Fixed Automatic VRAM detection for rocm and vulkan backends on AMD systems”. If you have an AMD card and a version older than that, updating may be the whole fix.
”Not using all my VRAM”
Three normal reasons, none of them a fault:
- Autofit keeps a reserve. The default
--autofitpaddingis 1,024 MB, left free on purpose so the load does not fail. - The context cache needs room next to the model.
- The model is small. If all layers are on the card, the rest of the memory has nothing to hold.
Multiple cards
Two fixes from 2026: version 1.118.1 “Fixed an issue with incorrect GPU selection when multi gpu is used”, and the 1.114.1 hotfix “fixed auto GPU selection”. Version 1.118.1 also removed row split: “selecting it will now default to tensor split”.
It Is Slow
There are two kinds of slow, with different causes. Decide which one you have before you change anything.
Every word is slow
The model, or part of it, is running on the processor.
- Check the section above first.
- Lower the context size. A big context takes card memory away from the model.
- Check that Low VRAM is not ticked. The help text for the option says “Not recommended, will be slow.”
- Leave threads on automatic. More threads than physical cores does not help.
- On Windows, try
--foreground. The help text says it “sends the terminal to the foreground every time a new prompt is generated” and that this “helps avoid some idle slowdown issues”.
It got slower after an update
This one has a specific cause in the release notes. The default context size has been raised three times:
- 1.96.2 (17 July 2025): “Default context size is now 8k (up from 4k)… This may affect your memory usage. Existing kcpps configs are unaffected.”
- 1.99.4 (21 September 2025): “Increased default context size and amount generated”.
- 1.122.1 (26 September 2026): “Increased default contextsize.” The value in the code is 16,384.
If you start KoboldCpp without a saved config, each of these updates reserved more memory for context. With the same card, fewer model layers fit, and the model is slower. Set the context size you used before, and press Save Config so the next change of default does not reach you.
A long pause before each reply
The console shows the prompt being processed for a long time, and then the reply comes at normal speed. KoboldCpp is reading your whole prompt again.
It should not need to. Two features, both on by default, exist to avoid it: fast forwarding skips the part of the prompt that did not change, and context shifting drops old tokens without a new read. The wiki states the condition:
“So long as memory is not changed or edited and you don’t use world info, you should be able to avoid almost all reprocessing between consecutive generations even at max context.”
In a SillyTavern chat, these are the things that break the condition:
- A lorebook entry switches on or off near the top of the prompt. See SillyTavern lorebooks for where entries are inserted.
- A summary is rewritten, or vector storage moves old messages. See SillyTavern memory.
- You edited an old message, the character card or your persona.
- You switched to another chat or character. The whole prompt is new. The
--smartcacheoption keeps snapshots in RAM for this case.
Anything that changes text early in the prompt forces a new read from that point. The fix is not in KoboldCpp. It is to keep the early prompt stable: constant lorebook entries in place of keyword ones near the top, and fewer features that rewrite old text.
”Context shifting not working”
There is one more cause, and it arrived with an update. Some model families support SWA, a smaller kind of context cache. The notes name Gemma 4. Version 1.114.1 (30 May 2026) turned it on for every model that supports it, and marked the change as breaking: “SWA is now enabled by default on all models that support it (was off by default previously).”
The help text for the option says SWA “saves memory but cannot be used with context shifting.” So on such a model, since that version, context shifting is off unless you act. Untick Allow SWA on the launcher’s Context tab, or add --noswa. The cost is a larger context cache.
Context shifting is also unavailable for a few model types. The release notes mention RWKV, Mamba and models that use a vision method called mrope.
Memory Errors in the Middle of a Chat
If KoboldCpp loads and then fails when the chat gets long, the context cache has outgrown the memory.
- The wiki, on errors about “not enough space in the scratch memory / context memory / failed allocation”: “try reducing the max context size that you are using, and also try lowering
--blasbatchsizeto 128 or 64.” - If the model file is larger than your free system memory,
--usemmapreads it from disk on demand. Version 1.113.2 fixed “a bug where mmap used much more memory that expected”. - A quantized KV cache (
--quantkv q8_0) makes the context cache smaller. Version 1.113.2 also “Fixed q5_1 kv type not using the GPU correctly in CUDA”, so update before you tryq5_1. - Owners of the NVIDIA Tesla P40: version 1.122.1 lists “Revert P40 increase VRAM usage issue”.
SillyTavern or Another App Will Not Connect
Check the address
The console prints the address to use: Please connect to custom endpoint at …. The default port is 5001, so on the same PC it is http://localhost:5001. Open that address in a browser. If KoboldCpp’s own chat page appears, the server is up.
If the console shows “Warning: Port 5001 already appears to be in use by another program.”, something else has the port. Often it is a second copy of KoboldCpp still running. Close it, or start with a different --port.
Check the API type in SillyTavern
In SillyTavern’s API Connections, the API is Text Completion and the type is KoboldCpp. The address is the one from the console, without anything added. This is the route SillyTavern’s own documentation describes, and it gives KoboldCpp all of SillyTavern’s samplers.
KoboldCpp also has an OpenAI-compatible API at /v1, which the console announces as well. Use it for apps that only speak that format.
Password
If you started KoboldCpp with --password, every text request needs the key. Without it the server answers with an error of the type unauthorized. SillyTavern has a KoboldCpp API key field for this. The help text adds one limit worth knowing: “Image endpoints are not secured."
"Server is busy; please try again later.”
This is KoboldCpp’s own message. Requests wait in a queue, and the default limit is 10 (--multiuser). A front end that sends many requests at once, such as a group chat with automatic replies, summaries and image prompts together, can fill it. Wait for the current reply to finish, or reduce what runs in the background.
From a phone or another PC
By default KoboldCpp listens on every network interface. The help text for --host: “If this flag is not set, all routable interfaces are accepted.” So another device on the same network should reach it at the PC’s own network address and port 5001. The wiki’s example is http://192.168.1.85:5001. If that fails, the wiki points at the firewall and at setting --host to the PC’s address.
localhost on a phone means the phone. That is the most common mistake here. See SillyTavern on mobile.
From a website such as Janitor AI or Chub
A website cannot use an address that only exists inside your home network. It needs a public address. KoboldCpp has a flag for that, --remotetunnel, which the wiki says “will proceed to setup a tunnel with a usable URL”. Use the tunnel address with /v1 at the end in the site’s custom API or proxy settings. Our guides to the Janitor AI proxy settings and to using Chub cover those settings.
Two cautions. Anyone who has the tunnel address can use your model, so set a password. And each site decides which custom APIs it accepts. We did not test KoboldCpp against either site for this guide.
The Reply Is Wrong
These are not failures of the program, but they bring people to this search.
The model does not stop. The wiki explains it through the end-of-stream token: “If this EOS token is banned, the model will continue generating indefinitely until the requested tokens are all consumed.” In SillyTavern, look for the option that bans the EOS token and turn it off.
The output is nonsense. The wiki’s list: a bad quantization, a model that is not supported, and wrong sampler values. Its safe values are “Top-P=0.92, RepPen=1.1, Temperature=0.7”. Newer models are also sensitive to the prompt format. The 1.111 notes say of Gemma 4: “using the wrong format will likely cause bad outputs.”
Thinking text is missing or in the wrong place. Version 1.111 (3 April 2026) made a breaking change on the chat completions API: “Detected thinking content is now sent via reasoning_content instead of content”. A front end that does not read that field shows no thinking. Version 1.116.1 “fixed reasoning content not appearing when streaming was disabled”. If thinking vanished after an update in spring 2026, this is why. For the wider problem, see AI roleplay repetition loops and SillyTavern presets.
The reply is cut short. A front end that sends no length gets the default, 2,048 tokens (--defaultgenamt). SillyTavern sends its own response length, so check that slider.
A Feature Does Nothing
KoboldCpp can also make images, speak, listen and search the web. Each of these is a separate thing that must be loaded or switched on in the launcher. If it was not, the feature is absent, and the rest works normally.
| Feature | What it needs | What you see when it is missing |
|---|---|---|
| Image generation | An image model loaded on the Image Gen tab (--sdmodel) | The image page answers “KoboldCpp API is running, but KCPP SDUI is not loaded” |
| Voice (TTS) | A voice model loaded in the launcher | A failed load says Could not load TTS model! |
| Voice input | A Whisper model | Could not load whisper model on a failed load |
| Looking at images | A projector file for the model (--mmproj) | No Vision model loaded |
| Web search | Enable WebSearch on the Network tab (--websearch). It is off by default | The startup line Inactive Modules: includes WebSearchProxy |
Each extra model takes memory from the same card. A text model that loaded alone may fail when an image model is added. That is the Could not load case from earlier, with a different file named in the message.
For the SillyTavern side of these, see SillyTavern image generation and SillyTavern TTS.
Problems That an Update Fixes
KoboldCpp releases roughly every two weeks. Several searched problems are bugs with a fix and a date.
| Problem | Fixed in | The release note |
|---|---|---|
| Put into failsafe mode without asking | 1.120, 29 Aug 2026 | ”Fixed a bug where failsafe mode was incorrectly selected” |
| Wrong card used with several GPUs | 1.118.1, 1 Aug 2026 | ”Fixed an issue with incorrect GPU selection when multi gpu is used” |
| A crash with no message when a model fails to load | 1.121, 15 Sep 2026 | ”Prevent segfault on model load failure” |
| A stream that ends with no error | 1.122.1, 26 Sep 2026 | ”Generation failures during streaming return an error object” |
| More VRAM used on a Tesla P40 | 1.122.1, 26 Sep 2026 | ”Revert P40 increase VRAM usage issue” |
| Thinking text missing without streaming | 1.116.1, 27 Jun 2026 | ”fixed reasoning content not appearing when streaming was disabled” |
| Slow model downloads from Hugging Face | 1.116.1, 27 Jun 2026 | ”Fixed a regression with huggingface xet file download speed” |
| mmap using too much memory | 1.113.2, 16 May 2026 | ”Fixed a bug where mmap used much more memory that expected” |
| A saved config that loads wrongly | 1.113.2, 16 May 2026 | ”Fixed some config loading issues” |
| Card memory not detected on AMD | 1.99.4, 21 Sep 2025 | ”Fixed Automatic VRAM detection for rocm and vulkan backends on AMD systems” |
The version number is in the title of the launcher window, and the console prints it at the start in the line Welcome to KoboldCpp - Version …. The launcher’s Update button opens the latest release page in your browser.
Checklist
- Start KoboldCpp from a command prompt so the window stays open.
- Read the last lines. Is it Cannot find or Could not load?
- Check you have the right download for your card: main for NVIDIA,
nocudawith Vulkan for AMD and Intel,oldpcfor old hardware. - Check you downloaded it from the GitHub releases page.
- Look for the Auto Selected … Backend line and the Detected Available GPU Memory line.
- Lower the context size before anything else.
- Leave GPU layers at -1 unless the card’s memory was not detected.
- Update to the current version.
- Open
http://localhost:5001in a browser to prove the server is up. - In SillyTavern, use Text Completion with the KoboldCpp type.
- Press Save Config when it works.
Frequently Asked Questions
Why does KoboldCpp close as soon as I open it?
It stopped on an error and the window closed before you could read it. When KoboldCpp exits on an error it prints the message, waits two seconds and then closes. Start it from a command prompt, so the window stays open, and read the last lines. The project’s wiki gives the same advice.
What does Could not load text model mean in KoboldCpp?
It means the file was found but the engine could not load it. The usual causes are not enough memory for the model and the context size, a file that is not a GGUF model, a damaged download, or a model that is newer than your version of KoboldCpp. The message Cannot find text model file is different: it means the path is wrong.
Why is KoboldCpp not using my GPU?
Look at the console while the model loads. If it says a CPU backend was selected, or that no GPU backend was found, the model is on the processor. The common causes are the wrong download for your card, the CPU option chosen in the launcher, and GPU layers set to zero. AMD and Intel cards use the Vulkan option, and NVIDIA cards use CUDA.
What does Unable to detect VRAM mean?
KoboldCpp could not read how much memory your graphics card has. It reads that number by running the system tools nvidia-smi, vulkaninfo or rocminfo, so the message appears when the tool for your card is missing or fails. The card can still be used. Choose the backend yourself and set the number of GPU layers by hand.
Why is KoboldCpp so slow?
There are two different kinds of slow. If every word comes slowly, part of the model is on the processor: check the GPU lines in the console and lower the context size. If there is a long pause before each reply, KoboldCpp is reading the whole prompt again, which happens when the early part of the prompt changes between turns or when a model uses SWA.
Why did KoboldCpp get slower after an update?
The default context size went up. It was raised to 8k in July 2025, raised again in September 2025, and raised again in version 1.122.1 in September 2026, where the code’s value is 16,384. A larger context takes memory from the graphics card, so fewer model layers fit. Set the context size you used before, and save it in a config file.
Why can’t SillyTavern connect to KoboldCpp?
Check that the KoboldCpp console shows the line that starts with Please connect to custom endpoint, and use that address in SillyTavern with the API set to Text Completion and the type set to KoboldCpp. If you set a password in KoboldCpp, SillyTavern needs the same value in its KoboldCpp API key field.
Is it safe to download KoboldCpp?
The real project is open source and is published on GitHub under the account LostRuins. The developers warned on 26 September 2026 that a website at the address koboldcpp.com is not theirs and tries to make visitors download malware. Download only from the GitHub releases page.
The error messages, the exit codes, the two-second wait, the console lines, the way card memory is detected, the queue limit and the help texts were read from koboldcpp.py on KoboldCpp’s concedo branch (version 1.122.1) on 10 October 2026. Dated fixes and changes are from the project’s GitHub release notes. Quoted advice is from the project’s wiki. The SillyTavern details are from its documentation and its 1.19.0 code. The fake-site warning is the developers’ own statement, and we did not test it. We did not reproduce these failures on our own hardware, and we did not test KoboldCpp with Janitor AI or Chub. The grouping by what you can see, the explanation of what breaks the reprocessing condition in a SillyTavern chat, and the checklist are our reading.
KoboldCpp is an open-source project. Arcanum is not affiliated with KoboldCpp, SillyTavern, NVIDIA, AMD, Microsoft, Janitor AI, Chub or any project named here. Product names and trademarks are the property of their respective owners.