Top

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 seeThe most likely reasonGo to
The window opens and closesA fatal error you could not readRead the console
Nothing opens at allThe wrong file for your PC, or a blocked programIt will not open
Cannot find text model fileThe path to the model is wrongCannot find, could not load
Could not load text modelNot enough memory, or a file the engine cannot readCannot find, could not load
Replies come one slow word at a timeThe model is on the processorNot using the GPU
Unable to detect VRAMThe system tool that reports card memory is missingNot using the GPU
A long pause before each replyThe whole prompt is being read againSlow
It was faster before the updateThe default context size went upSlow
SillyTavern shows no connectionWrong address, wrong API type, or a passwordNot connecting
Server is busy; please try again later.The request queue is fullNot connecting
Images, voice or search do nothingThat feature’s model or switch was never loadedFeatures

First: Read the Console

Everything else on this page depends on this step.

On Windows:

  1. Open the folder where koboldcpp.exe is.
  2. Click the address bar of the folder window, type cmd and press Enter. A command prompt opens in that folder.
  3. Type koboldcpp.exe and 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:

FileFor
koboldcpp.exe or koboldcpp-linux-x64NVIDIA graphics cards
oldpc”an older CPU or older NVIDIA GPU” where the main file “does not work” (CUDA 11 and AVX1)
nocudaNo NVIDIA card, or no need for CUDA. Smaller
koboldcpp-mac-arm64Apple 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.

MessageExit codeMeaning
Cannot find text model file: (path)2The file is not at that path
Could not load text model: (path)3The 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 .kcpps file 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 lineMeaning
Auto Selected CUDA BackendAn NVIDIA card was found and will be used
Auto Selected Vulkan BackendA card was found through Vulkan
Auto Selected Default BackendNo GPU backend. The processor will be used
Detected Available GPU Memory: … MBThe card’s memory was read
Unable to determine GPU MemoryIt 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-smi comes with the NVIDIA driver. vulkaninfo comes 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 --autofitpadding is 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.

  1. Check the section above first.
  2. Lower the context size. A big context takes card memory away from the model.
  3. Check that Low VRAM is not ticked. The help text for the option says “Not recommended, will be slow.”
  4. Leave threads on automatic. More threads than physical cores does not help.
  5. 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 --smartcache option 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 --blasbatchsize to 128 or 64.”
  • If the model file is larger than your free system memory, --usemmap reads 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 try q5_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.

FeatureWhat it needsWhat you see when it is missing
Image generationAn 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 launcherA failed load says Could not load TTS model!
Voice inputA Whisper modelCould not load whisper model on a failed load
Looking at imagesA projector file for the model (--mmproj)No Vision model loaded
Web searchEnable WebSearch on the Network tab (--websearch). It is off by defaultThe 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.

ProblemFixed inThe release note
Put into failsafe mode without asking1.120, 29 Aug 2026”Fixed a bug where failsafe mode was incorrectly selected”
Wrong card used with several GPUs1.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 load1.121, 15 Sep 2026”Prevent segfault on model load failure”
A stream that ends with no error1.122.1, 26 Sep 2026”Generation failures during streaming return an error object”
More VRAM used on a Tesla P401.122.1, 26 Sep 2026”Revert P40 increase VRAM usage issue”
Thinking text missing without streaming1.116.1, 27 Jun 2026”fixed reasoning content not appearing when streaming was disabled”
Slow model downloads from Hugging Face1.116.1, 27 Jun 2026”Fixed a regression with huggingface xet file download speed”
mmap using too much memory1.113.2, 16 May 2026”Fixed a bug where mmap used much more memory that expected”
A saved config that loads wrongly1.113.2, 16 May 2026”Fixed some config loading issues”
Card memory not detected on AMD1.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

  1. Start KoboldCpp from a command prompt so the window stays open.
  2. Read the last lines. Is it Cannot find or Could not load?
  3. Check you have the right download for your card: main for NVIDIA, nocuda with Vulkan for AMD and Intel, oldpc for old hardware.
  4. Check you downloaded it from the GitHub releases page.
  5. Look for the Auto Selected … Backend line and the Detected Available GPU Memory line.
  6. Lower the context size before anything else.
  7. Leave GPU layers at -1 unless the card’s memory was not detected.
  8. Update to the current version.
  9. Open http://localhost:5001 in a browser to prove the server is up.
  10. In SillyTavern, use Text Completion with the KoboldCpp type.
  11. 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.