Skip to content
This page was generated and translated with the assistance of AI. If you spot any inaccuracies, feel free to help improve it. Edit on GitHub

Troubleshooting

This page covers common issues encountered when running PRX-Memory, along with their causes and solutions.

Configuration Issues

"PRX_EMBED_API_KEY is not configured"

Cause: A remote semantic recall was requested but no embedding API key was set.

Solution: Set the embedding provider and API key:

bash
PRX_EMBED_PROVIDER=jina
PRX_EMBED_API_KEY=your_api_key

Or use a provider-specific fallback key:

bash
JINA_API_KEY=your_api_key

TIP

If you do not need semantic search, PRX-Memory works without embedding configuration using lexical matching only.

"Unsupported rerank provider"

Cause: The PRX_RERANK_PROVIDER variable contains an unrecognized value.

Solution: Use one of the supported values:

bash
PRX_RERANK_PROVIDER=jina        # or cohere, pinecone, pinecone-compatible, none

"Unsupported embed provider"

Cause: The PRX_EMBED_PROVIDER variable contains an unrecognized value.

Solution: Use one of the supported values:

bash
PRX_EMBED_PROVIDER=openai-compatible  # or jina, gemini

Session Issues

"session_expired"

Cause: An HTTP streaming session exceeded its TTL without being renewed.

Solution: Either renew the session before expiry or increase the TTL:

bash
# Renew the session
curl -X POST "http://127.0.0.1:8787/mcp/session/renew?session=SESSION_ID"

# Or increase the TTL (default: 300000ms = 5 minutes)
PRX_MEMORY_STREAM_SESSION_TTL_MS=600000

Storage Issues

Database file not found

Cause: The path specified in PRX_MEMORY_DB does not exist or is not writable.

Solution: Ensure the directory exists and the path is correct:

bash
mkdir -p ./data
PRX_MEMORY_DB=./data/memory-db.json

TIP

Use absolute paths to avoid issues with working directory changes.

Large JSON database slow to load

Cause: The JSON backend loads the entire file into memory on startup. For databases with over 10,000 entries, this can be slow.

Solution: Migrate to the SQLite backend:

bash
PRX_MEMORY_BACKEND=sqlite
PRX_MEMORY_DB=./data/memory.db

Use the memory_migrate tool to transfer existing data.

Observability Issues

Metrics cardinality overflow alert

Cause: Too many distinct label values in recall scope, category, or rerank provider dimensions.

Solution: Increase the cardinality limits or normalize your inputs:

bash
PRX_METRICS_MAX_RECALL_SCOPE_LABELS=64
PRX_METRICS_MAX_RECALL_CATEGORY_LABELS=64
PRX_METRICS_MAX_RERANK_PROVIDER_LABELS=32

When limits are exceeded, new label values are silently dropped and counted in prx_memory_metrics_label_overflow_total.

Alert thresholds too sensitive

Cause: Default alert thresholds may trigger false positives during initial deployment.

Solution: Adjust thresholds based on your expected error rates:

bash
PRX_ALERT_TOOL_ERROR_RATIO_WARN=0.10
PRX_ALERT_TOOL_ERROR_RATIO_CRIT=0.30

Build Issues

LanceDB feature not available

Cause: The lancedb-backend feature was not enabled at compile time.

Solution: Rebuild with the feature flag:

bash
cargo build --release -p prx-memory-mcp --bin prx-memoryd --features lancedb-backend

Compilation errors on Linux

Cause: Missing system dependencies for building native code.

Solution: Install build dependencies:

bash
# Debian/Ubuntu
sudo apt install -y build-essential pkg-config libssl-dev

# Fedora
sudo dnf install -y gcc openssl-devel pkg-config

Health Check

Use the HTTP health endpoint to verify the server is running correctly:

bash
curl -sS http://127.0.0.1:8787/health

Check metrics for operational status:

bash
curl -sS http://127.0.0.1:8787/metrics/summary

Validation Commands

Run the full validation suite to verify your installation:

bash
# Multi-client validation
./scripts/run_multi_client_validation.sh

# Soak test (60 seconds, 4 QPS)
./scripts/run_soak_http.sh 60 4

Getting Help

Released under the Apache-2.0 License.