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:
ProviderResolutionErroroder Ăquivalent im Memory-Subsystem - Fehlermeldung:
Unknown memory embedding provider: ollama - Stack-Trace-Position: Wahrscheinlich in
packages/core/src/memory/providers/registry.tsoder Ă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:
- Aus der Provider-Registry entfernt wÀhrend eines Refactoring-Commits zwischen 2026.04.10 und 2026.04.12
- Ohne RĂŒckwĂ€rtskompatibilitĂ€t umbenannt (z.B. "ollama" â "ollama-embedding" oder "ollama/text-embedding-2")
- Aus dem Build-Bundle ausgeschlossen aufgrund eines Tree-Shaking-Problems oder bedingten Imports
- 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/[email protected]
# 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: ollamakorrekt angezeigtEmbeddings: readyStatus
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ösungsfehlerPROVIDER_NOT_INITIALIZED- Provider registriert, aber nicht bereitEMBEDDING_MODEL_NOT_FOUND- Modell existiert nicht beim ProviderPROVIDER_CONNECTION_FAILED- Netzwerk-/Verbindung zum Provider unterbrochenCONFIG_SCHEMA_MISMATCH- Konfigurationsstruktur inkompatibel
Historisch zugehörige Probleme
| Issue-ID | Titel | Beschreibung |
|---|---|---|
| #4521 | Memory provider registry empty after v2026.04.x update | Ăhnliche Registry-Regression in frĂŒherem v2026.04-Release |
| #4489 | Ollama embedding returns empty vectors | Nachgelagertes Problem, wenn Provider endlich aufgelöst wird |
| #4456 | Provider config not loaded from workspace config | Config-Auflösungs-Randfall |
| #4398 | Regression: “Unknown provider” for azure OpenAI | Ăhnliches Regressionsmuster bei Azure-Provider |
| #4321 | Memory embedding silently falls back to CPU | Fallback-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