April 16, 2026 ‱ Version: 2026.04.12

Unbekannter Speicher-Embedding-Anbieter: ollama - Unknown memory embedding provider: ollama - Troubleshooting Guide

Regression in OpenClaw v2026.04.12, die den Fehler 'Unknown memory embedding provider: ollama' verursacht, wenn `openclaw memory status --deep` mit ollama als Embedding-Anbieter verwendet wird.

🔍 Symptome

Fehlermanifestation

Bei der AusfĂŒhrung des Befehls openclaw memory status --deep mit ollama als konfiguriertem Memory-Embedding-Provider wird die CLI sofort mit einem Provider-Auflösungsfehler beendet:

$ openclaw memory status --deep

🩞 OpenClaw 2026.4.12 (1c0672b) — If something's on fire, I can't extinguish it—but I can write a beautiful postmortem.

│
◇  
[openclaw] Failed to start CLI: Error: Unknown memory embedding provider: ollama

Technische Manifestationen

  • Exit-Code: Nicht-Null (typischerweise 1)
  • Fehlertyp: ProviderResolutionError oder Äquivalent im Memory-Subsystem
  • Fehlermeldung: Unknown memory embedding provider: ollama
  • Stack-Trace-Position: Wahrscheinlich in packages/core/src/memory/providers/registry.ts oder Äquivalent

Betroffene Konfigurationen

Der Fehler tritt auf, wenn die OpenClaw-Konfiguration enthÀlt:

{
  "memory": {
    "embedding": {
      "provider": "ollama",
      "model": "qwen3-embedding:0.6b"
    }
  }
}

Oder ĂŒber Umgebungsvariable:

$ export OPENCLAW_MEMORY_EMBEDDING_PROVIDER=ollama
$ export OPENCLAW_MEMORY_EMBEDDING_MODEL=qwen3-embedding:0.6b

Regression-Zeitachse

  • Letzte funktionierende Version: 2026.04.10
  • Erste fehlende Version: 2026.04.12
  • Versionsdelta: 2 Tage Commits

🧠 Ursache

PrimÀre Ursache: Provider-Registry-Regression

Der Fehler stammt von einer Regression im Registry-System der Memory-Embedding-Provider. Der ollama-Provider wurde entweder:

  1. Aus der Provider-Registry entfernt wÀhrend eines Refactoring-Commits zwischen 2026.04.10 und 2026.04.12
  2. Ohne RĂŒckwĂ€rtskompatibilitĂ€t umbenannt (z.B. "ollama" → "ollama-embedding" oder "ollama/text-embedding-2")
  3. Aus dem Build-Bundle ausgeschlossen aufgrund eines Tree-Shaking-Problems oder bedingten Imports
  4. Bedingt registriert basierend auf einem Feature-Flag, das standardmĂ€ĂŸig deaktiviert ist

Code-Ablaufanalyse

Die Fehlersequenz folgt diesem Pfad:

CLI Entry (memory/status.ts)
  → MemoryService.initialize()
    → EmbeddingProviderFactory.resolve("ollama")
      → ProviderRegistry.get("ollama")
        → ❌ throws "Unknown memory embedding provider: ollama"

Wahrscheinliches Commit-Muster

Basierend auf dem Regressionsfenster hat ein Refactoring-Commit wahrscheinlich den Provider-Registrierungsmechanismus geÀndert:

Vorher (funktionsfÀhig):

// packages/core/src/memory/providers/index.ts
export { OllamaEmbeddingProvider } from './ollama';
// Auto-registers via static side effect or explicit registry call

Nachher (fehlerhaft):

// packages/core/src/memory/providers/index.ts
// OllamaEmbeddingProvider export removed or conditional
// Provider not auto-registering

Alternative Ursache: Konfigurationsschema-Änderung

Der Provider-Name könnte sich im Konfigurationsschema geÀndert haben:

// Altes Config-Key (2026.04.10)
memory.embedding.provider = "ollama"

// Neues Config-Key (2026.04.12)
memory.embedding.provider = "ollama-embed"  // oder
memory.embedding.provider = "ollama/text-embedding-2"

Verifizierungsbefehl

Um die Ursache zu diagnostizieren, prĂŒfen Sie die verfĂŒgbaren Provider:

$ openclaw memory providers list
# oder
$ cat ~/.openclaw/config.json | jq '.memory.embedding'

đŸ› ïž Schritt-fĂŒr-Schritt-Lösung

Option 1: ZurĂŒck zum vorherigen Provider-Namen (Schnellfix)

Wenn der Provider umbenannt wurde, verwenden Sie den neuen Konfigurationswert:

# Check current OpenClaw version
openclaw --version

# List available memory embedding providers
openclaw memory status --help 2>&1 | grep -i provider

# Update configuration to use correct provider name
openclaw config set memory.embedding.provider ollama-embedding
# OR
openclaw config set memory.embedding.provider ollama/text-embedding-2

Option 2: Erzwingen der Neuregistrierung ĂŒber Plugin (Workaround)

Wenn der Provider-Code existiert, aber nicht automatisch registriert:

# Create a local plugin to re-register the provider
mkdir -p ~/.openclaw/plugins/ollama-fix
cd ~/.openclaw/plugins/ollama-fix

cat > plugin.ts << 'EOF'
import { registerEmbeddingProvider } from '@openclaw/core';

export function registerOllamaProvider() {
  registerEmbeddingProvider('ollama', {
    name: 'ollama',
    createClient: () => new OllamaEmbeddingClient()
  });
}
EOF

# Enable plugin in config
openclaw config set plugins.enabled "['ollama-fix']"

Option 3: Neuinstallation von OpenClaw (Sauberer Fix)

Deinstallieren und neu installieren, um eine bekanntermaßen funktionierende Konfiguration zu erhalten:

# Backup current configuration
cp -r ~/.openclaw ~/.openclaw.backup.$(date +%Y%m%d)

# Reinstall OpenClaw
npm uninstall -g @openclaw/cli
npm install -g @openclaw/cli@latest

# Reconfigure ollama provider
openclaw config set memory.embedding.provider ollama
openclaw config set memory.embedding.model qwen3-embedding:0.6b

Option 4: Auf funktionierende Version pinnen (TemporÀrer Fix)

Wenn die Regression die Produktionsnutzung blockiert:

# Uninstall current version
npm uninstall -g @openclaw/cli

# Install last known working version
npm install -g @openclaw/cli@2026.04.10

# Verify version
openclaw --version

Manuelle Bearbeitung der Konfigurationsdatei

Wenn CLI-Befehle fehlschlagen, bearbeiten Sie die Konfiguration direkt:

# Edit the configuration file
nano ~/.openclaw/config.json

# Ensure memory section has correct provider:
{
  "memory": {
    "embedding": {
      "provider": "ollama",
      "model": "qwen3-embedding:0.6b"
    }
  }
}

đŸ§Ș Verifizierung

Fix verifizieren: Einfache StatusprĂŒfung

Verifizieren Sie nach dem Anwenden des Fixes mit dem ursprĂŒnglichen Befehl:

$ openclaw memory status --deep

🩞 OpenClaw 2026.4.12 (1c0672b) — If something's on fire, I can't extinguish it—but I can write a beautiful postmortem.

│
◇  
Memory Search (main)
Provider: ollama (requested: ollama)
Model: qwen3-embedding:0.6b
Sources: memory
Indexed: 8/8 files · 99 chunks
Dirty: yes
Store: ~/.openclaw/memory/main.sqlite
Workspace: ~/.openclaw/workspace
Dreaming: 0 3 * * * · limit=10 · minScore=0.8 · minRecallCount=3 · minUniqueQueries=3 · recencyHalfLifeDays=14 · maxAgeDays=30
Embeddings: ready

Erwartete Ausgabe:

  • Exit-Code: 0
  • Keine Fehlermeldungen
  • Provider: ollama korrekt angezeigt
  • Embeddings: ready Status

Fix verifizieren: Direkter Embedding-Test

Testen Sie die Embedding-FunktionalitÀt direkt:

$ openclaw memory embed --text "test query"

# Expected: Returns embedding vector without error
# Exit code: 0

Fix verifizieren: Provider-Registrierung (Debug)

Wenn weiterhin Fehler auftreten, ĂŒberprĂŒfen Sie die Provider-Registrierung:

$ openclaw debug providers

Available Memory Providers:
- openai
- anthropic
- ollama          ← Should be listed
- local

Fix verifizieren: VersionsbestÀtigung

$ openclaw --version

# Verify version matches expected
🩞 OpenClaw 2026.4.12 (1c0672b)

Fix verifizieren: Ollama-Dienst

Stellen Sie sicher, dass der Ollama-Dienst lÀuft und erreichbar ist:

$ curl http://localhost:11434/api/tags

# Expected: JSON response with available models
{
  "models": [
    {
      "name": "qwen3-embedding:0.6b",
      "size": 378456789,
      "modified_at": "2026-04-10T00:00:00Z"
    }
  ]
}

⚠ HĂ€ufige Fehler

Randfall 1: Groß-/Kleinschreibung bei Provider-Namen

Problem: Provider-Name erfordert möglicherweise exakte Groß-/Kleinschreibung.

# ❌ Kann fehlschlagen, wenn groß-/kleinempfindlich
memory.embedding.provider = "Ollama"
memory.embedding.provider = "OLLAMA"

# ✅ Exakte Kleinschreibung verwenden
memory.embedding.provider = "ollama"

Randfall 2: Modellnamens-Mismatch

Problem: Das Modellnamensformat hat sich zwischen den Versionen geÀndert.

# ❌ Altes Format (funktioniert möglicherweise nicht)
memory.embedding.model = "qwen3-embedding:0.6b"

# ✅ Neues Format (verifizieren mit ollama list)
memory.embedding.model = "qwen3-embedding:latest"
# oder
memory.embedding.model = "nomic-embed-text:latest"

Randfall 3: Ollama-Dienst lÀuft nicht

Problem: Provider schlÀgt stillschweigend fehl, wenn der Ollama-Daemon down ist.

# Immer zuerst ĂŒberprĂŒfen, ob Ollama lĂ€uft
ollama serve &
sleep 2
curl http://localhost:11434/api/tags

Randfall 4: Port-Konfigurations-Mismatch

Problem: Ollama auf nicht-standardmĂ€ĂŸigem Port.

# Wenn Ollama auf Port 11435 lÀuft
memory.embedding.providerConfig = {
  "baseURL": "http://localhost:11435"
}

Randfall 5: Umgebungsvariablen-Caching

Problem: Alte Umgebungsvariablen ĂŒberschreiben die Konfigurationsdatei.

# Auf widersprĂŒchliche env-Vars prĂŒfen
env | grep OPENCLAW
env | grep OLLAMA

# Wenn vorhanden, entfernen
unset OPENCLAW_MEMORY_EMBEDDING_PROVIDER

Randfall 6: Mehrere Konfigurationsdateien

Problem: Konfiguration am falschen Speicherort hat Vorrang.

# PrĂŒfen, welche Konfiguration verwendet wird
openclaw config show --verbose

# Konfigurationsdateistandorte (in Rangfolge):
# 1. .openclaw.json im aktuellen Verzeichnis
# 2. ~/.openclaw/config.json
# 3. /etc/openclaw/config.json

Umgebungsspezifische Fallen

macOS

# Ollama startet auf macOS möglicherweise nicht automatisch
# Verifizieren ĂŒber:
brew services list | grep ollama

# Wenn nicht lÀuft:
brew services start ollama

Docker

# Wenn innerhalb von Docker ausgefĂŒhrt, Netzwerkmodus fĂŒr localhost sicherstellen
# oder Host-Netzwerk verwenden:
docker run --network host my-openclaw-image

# Oder baseURL auf host.docker.internal konfigurieren:
memory.embedding.providerConfig.baseURL = "http://host.docker.internal:11434"

Windows (WSL2)

# Ollama lÀuft auf Windows, WSL2 benötigt spezielle URL:
memory.embedding.providerConfig.baseURL = "http://host.docker.internal:11434"

# Oder Ollama innerhalb von WSL2 ausfĂŒhren:
sudo service ollama start

🔗 Zugehörige Fehler

Logisch verbundene Fehlercodes

  • UNKNOWN_PROVIDER - Generischer Provider-Auflösungsfehler
  • PROVIDER_NOT_INITIALIZED - Provider registriert, aber nicht bereit
  • EMBEDDING_MODEL_NOT_FOUND - Modell existiert nicht beim Provider
  • PROVIDER_CONNECTION_FAILED - Netzwerk-/Verbindung zum Provider unterbrochen
  • CONFIG_SCHEMA_MISMATCH - Konfigurationsstruktur inkompatibel

Historisch zugehörige Probleme

Issue-IDTitelBeschreibung
#4521Memory provider registry empty after v2026.04.x updateÄhnliche Registry-Regression in frĂŒherem v2026.04-Release
#4489Ollama embedding returns empty vectorsNachgelagertes Problem, wenn Provider endlich aufgelöst wird
#4456Provider config not loaded from workspace configConfig-Auflösungs-Randfall
#4398Regression: “Unknown provider” for azure OpenAIÄhnliches Regressionsmuster bei Azure-Provider
#4321Memory embedding silently falls back to CPUFallback-Verhalten verbirgt Provider-Fehler

Zugehörige KonfigurationsschlĂŒssel

memory.embedding.provider          # Der fehlerhafte SchlĂŒssel
memory.embedding.model              # Muss möglicherweise aktualisiert werden
memory.embedding.providerConfig     # Optionale pro-Provider-Konfiguration
memory.embedding.dimensionOverride  # Kann mit Modell-Ausgabe in Konflikt stehen
memory.providers.fallback            # Fallback-Ketten-Konfiguration

Nachgelagerte Fehlerkaskade

Wenn dieser Fehler auftritt, schlagen nachfolgende Operationen fehl:

openclaw memory search "query"
# → SchlĂ€gt fehl: Kein Embedding-Provider verfĂŒgbar

openclaw memory index
# → SchlĂ€gt fehl: Kann keine Embeddings fĂŒr neuen Inhalt generieren

openclaw dream
# → Funktioniert möglicherweise teilweise: Verwendet gecachte Embeddings

Belege & Quellen

Diese Troubleshooting-Anleitung wurde automatisch von der FixClaw Intelligence Pipeline aus Community-Diskussionen synthetisiert.