Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Llama() silently accepts and discards `embedding` kwarg; .embed() then raises confusingly

Open Beginner friendly
#2,210 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
65/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Stale
Tech stack
python

Research direction

The issue is in the Llama.init method in llama_cpp/llama.py, which currently silently swallows the 'embedding' kwarg. Look for the **kwargs handling and the context_params.embeddings assignment. The fix is to either raise a TypeError for unknown kwargs or map 'embedding' to 'embeddings' with a deprecation warning. Test by running the reproduction script to confirm the error, then after your change, ensure .embed() works when 'embedding=True' is passed.

Written by the indexing model from the issue text.

Description

Prerequisites

  • I am running the latest code. Development is very rapid so there are no tagged versions as of now.
  • I carefully followed the README.md.
  • I searched using keywords relevant to my issue to make sure that I am creating a new issue that is not already open (or closed).
  • I reviewed the Discussions, and have a new bug or useful enhancement to share.

Expected Behavior

When constructing Llama with the older spelling embedding=True (singular — the parameter name in 0.2.x), one of two things should happen:

  1. The kwarg is accepted as a deprecated alias of embeddings and a DeprecationWarning is emitted, OR
  2. A TypeError is raised at construction time, surfacing the issue at the call site rather than swallowing it silently.

Current Behavior

Neither happens. embedding=True is silently swallowed via **kwargs, context_params.embeddings stays at its default False, and the failure surfaces much later — deep inside .embed() — with a misleading error message that suggests the user didn't pass the flag, when in fact they did (just under the historical name).

RuntimeError: Llama model must be created with embeddings=True to call this method

This is especially painful for users integrating older libraries that haven't migrated to the new spelling yet — the error points at the wrong thing.

Environment and Context

  • Hardware: x86_64, NVIDIA GeForce RTX 4090
  • OS: Windows 10 22H2
  • Python 3.12.9
  • llama-cpp-python 0.3.36 (CUDA 12.8 prebuilt wheel)
$ python --version
Python 3.12.9

$ pip show llama-cpp-python | findstr Version
Version: 0.3.36

Failure Information (for bugs)

The constructor's **kwargs swallows unknown keyword arguments with no warning, so a typo or stale parameter name produces a delayed, confusing failure rather than an immediate error.

Steps to Reproduce

from llama_cpp import Llama

# Pass the older `embedding` (singular) instead of `embeddings` (plural).
m = Llama(model_path="path/to/model.gguf", embedding=True)
m.embed("hello")

Result:

RuntimeError: Llama model must be created with embeddings=True to call this method

Even though embedding=True was passed at construction. The fix is to either accept embedding as a deprecated alias or to validate kwargs strictly.

Failure Logs

Traceback (most recent call last):
  File "...\Lib\site-packages\llama_cpp\llama.py", line 1602, in embed
    raise RuntimeError(
RuntimeError: Llama model must be created with embeddings=True to call this method

Hit while integrating Tencent's HY-Motion text-to-motion model — the hymotion package's text encoder still uses the older embedding= spelling, so anyone running it against llama-cpp-python 0.3.x sees this confusing failure at first inference instead of at construction. Workaround in our case is a runtime monkey-patch that translates embeddingembeddings in Llama.__init__, but that doesn't help anyone else.

Dominant language
Python
Stars
10.6k
Forks
1.5k
Avg merge
6h 43m
Merged PRs (30d)
2

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from abetlen/llama-cpp-python

All issues in abetlen/llama-cpp-python

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.