Skip to content

[Bug] ov reindex --regenerate processes Semantic queue but LLM overview content never written to .overview.md #1834

@pty819

Description

@pty819

Bug Description

ov reindex --regenerate triggers Semantic queue processing (queue counter increments) but LLM-generated overview/abstract content is never written to .overview.md / .abstract.md files — they remain as [Directory overview is not generated] placeholders.

The Semantic queue consumer runs (processed count increments) but the VLM is never called and no content is written.


Version

  • Server: OpenViking v0.3.13 (released 2026-04-29, running as openviking-server)
  • CLI: ov v0.3.11.dev0 (Python package)
  • Embedding model: v5-small-retrieval-Q8_0.gguf (local GGUF, confirmed working — 17,357 vectors in VikingDB)
  • VLM model: nvidia_nim/nvidia/nemotron-3-nano-omni-30b-a3b-reasoning via https://integrate.api.nvidia.com/v1
  • Python: 3.10+
  • OS: Linux

Reproduction Steps

1. Add a resource and wait for embeddings to complete

# Add any directory resource
ov add-resource ~/finance_dict/

# Monitor — embeddings complete but LLM overviews are never generated
ov status

2. Trigger reindex with --regenerate

TARGET_URI="viking://resources/finance_dict/What_Are_Zombie_Companies__Understanding__5707d2ba"

ov reindex --regenerate --wait "$TARGET_URI"
# Output: {"status": "success", "enqueued_count": 1}

3. Observe Semantic queue processes items

# Before reindex:
# [queue] Semantic: 0 processed

# After reindex:
# [queue] Embedding: 15377 | Semantic: 4 processed | Semantic-Nodes: 4 processed

4. Check output files — still placeholders

$ cat ~/.ovk_workspace/viking/default/resources/finance_dict/.../.overview.md
# What_Are_Zombie_Companies__Understanding__5707d2ba
[Directory overview is not generated]

$ cat ~/.ovk_workspace/viking/default/resources/finance_dict/.../.abstract.md
[Abstract not generated]

Expected Behavior

After ov reindex --regenerate --wait, the .overview.md and .abstract.md files should contain LLM-generated content (L0 abstract ~100 tokens, L1 overview ~2k tokens).

The OpenAPI spec at crates/ov_cli/src/commands/reindex.rs states:

"If regenerate=True, also regenerates L0/L1 summaries via LLM before re-embedding"


Actual Behavior

  • Semantic queue processes 4 items (increments from 0 → 4)
  • .overview.md and .abstract.md are touched (mtime updated to reindex time)
  • File contents remain placeholder strings: [Directory overview is not generated] / [Abstract not generated]
  • ov status shows VLM model calls are not tracked in the [models] section (only the embedding GGUF model appears)
  • No VLM API calls are made (NVIDIA NIM dashboard confirms zero calls for this model during reindex)

Root Cause Hypothesis

The semantic queue consumer runs and marks items as processed=4, but appears to skip the VLM generation step. Possible causes:

  1. Semantic processor has a guard that skips content writing — the generate_content or overview_type=auto logic may be disabled/broken in v0.3.13
  2. Workspace write path mismatch — semantic processor writes to a different workspace path than the one being read
  3. VLM client initialization failure in semantic worker — VLM client is initialized for embedding pipeline but not for summarization pipeline in the semantic worker
  4. Silent VLM failure — VLM API call returns an error that is swallowed silently by the semantic processor

Verification: VLM Works Directly

The NIM nemotron model works correctly when called directly:

curl -s -X POST https://integrate.api.nvidia.com/v1/chat/completions \
  -H "Authorization: Bearer <key>" \
  -H "Content-Type: application/json" \
  -d '{"model":"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning","messages":[{"role":"user","content":"What are zombie companies?"}],"max_tokens":50}'

# Response: valid JSON with coherent text — VLM is functional

Additionally, vikingbot (which uses the same OpenViking server with the same nemotron config) successfully calls the VLM for chat — proving the API key is real and the VLM integration works in the bot pipeline.


Queue State Snapshot

[queue] (healthy)
+----------------+---------+-------------+-----------+----------+--------+-------+
|     Queue      | Pending | In Progress | Processed | Requeued | Errors | Total |
+----------------+---------+-------------+-----------+----------+--------+-------+
|   Embedding    |    0    |      0      |   15377   |  11792   |   0    | 15377 |
|    Semantic    |    0    |      0      |     4     |    0     |   0    |   4   |
| Semantic-Nodes |    0    |      0      |     4     |    0     |   0    |   4   |
|     TOTAL      |    0    |      0      |   15381   |  11792   |   0    | 15381 |
+----------------+---------+-------------+-----------+----------+--------+-------+

[vikingdb] (healthy)
+------------+-------------+--------------+--------+
| Collection | Index Count | Vector Count | Status |
+------------+-------------+--------------+--------+
|  context   |      1      |    17357     |   OK   |
+------------+-------------+--------------+--------+

[models] (healthy)
Embedding Models:
+------------------------------+----------+-------+--------+------------+--------+
|            Model             | Provider | Calls | Prompt | Completion | Total  |
+------------------------------+----------+-------+--------+------------+--------+
| v5-small-retrieval-Q8_0.gguf |  openai  | 3614  | 143287 |     0      | 143287 |
+------------------------------+----------+-------+--------+------------+--------+
# NOTE: No VLM model entries — VLM was never called during reindex

Additional Context

  • This is a regression — embeddings were completed (17,357 vectors) and reindex --regenerate is the intended way to generate LLM overviews for pre-existing resources
  • The resource finance_dict contains ~6100 markdown files that all have embeddings but zero LLM overviews
  • All .overview.md / .abstract.md files were created as empty placeholders at ingest time

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions