#4524·tabby

debug_data.snippets always empty on /v1/completions, even with a fully indexed repository and specific in-codebase symbols as prefix

Author: MetalKnightCreated Jul 21, 2026Updated Aug 23, 2026
Labelsbug-unconfirmed

Environment ● Tabby v0.32.0, self-hosted via Docker (official tabbyml/tabby:latest image) ● Inference backend: external OpenAI-compatible server (AMD Lemonade Server, NPU backend), exposing /v1/completions ● Model: Qwen2.5-Coder-1.5B-Instruct-NPU ● Client: VS Code extension TabbyML.vscode-tabby v1.28.0, tabby-agent v1.9.0-dev

Config (config.toml)

[model.completion.http]
kind = "openai/completion"  # also reproduced with "vllm/completion"
model_name = "Qwen2.5-Coder-1.5B-Instruct-NPU"
api_endpoint = "http://<host>:13305/v1"
api_key = "***"
prompt_template = "<|fim_prefix|>{prefix}<|fim_suffix|>{suffix}<|fim_middle|>"
 
[model.embedding.http]
kind = "openai/embedding"
model_name = "nomic-embed-text"
api_endpoint = "http://<host>:11434/v1"

Setup ● Repository connected via self-hosted GitLab integration, indexing job completed successfully (confirmed in dashboard: code index + commit history jobs both report success). ● Repository is a real, non-trivial C++ codebase (hundreds of files).

Expected behavior Per the completion service documentation, code completion should use context retrieved from the indexed repository (via BM25 and/or embedding-based retrieval) to enrich completions with relevant symbols/snippets from elsewhere in the codebase.

Actual behavior POST /v1/completions with debug_options: { "return_snippets": true } always returns: "debug_data": { "snippets": [] } regardless of how specific/rare the searched symbol is. Tested with several prefixes that are unique, indexed symbols in the codebase (e.g. woss::WossException, WossCreatorContainer) — snippets remain empty in every case.

Reproduction steps

  1. Add a private/self-hosted Git repository as context source, wait for indexing job(s) to complete successfully.
  2. Send POST /v1/completions with a segments.prefix matching a symbol that only exists in files other than the one implied by the request, and debug_options: { "return_snippets": true }.
  3. Observe debug_data.snippets is always [].