When deploying the ghcr.io/copilotkit/pathfinder:latest (v1.13.3) Docker image, the internal Zod configuration parser enforces several strict schema requirements that directly conflict with the official documentation, specifically regarding local embedding execution and minimal RAG setups.
Even when running a custom built image that injects the @xenova/transformers peer dependency, the parser strictly locks out the local / transformers.js providers.
The 3 Specific Validation Issues:
- Embedding Provider Enum Lock:
The documentation outlines support for in-process local embeddings via transformers.js or local. However, the current Zod validator drops these from the allowed enum block, resulting in an immediate crash:
embedding.provider: Invalid enum value. Expected 'openai', received 'local'.
- Mandatory Indexing Cron Parameters:
The schema strictly requires the indexing block to define an automatic cron-job schedule (auto_reindex, reindex_hour_utc, stale_threshold_hours), even for users who want to run indexing manually or keep minimal configs.
- Redundant Source Chunking:
The parser demands a chunk object (target_tokens, overlap_tokens) explicitly nested inside every individual item in the sources array, ignoring any global default settings.
Steps to Reproduce:
Attempt to run the Docker container with this docs-compliant pathfinder.yaml configuration:
version: "1.0"
server:
name: "tech-ecosystem"
version: "1.13.3"
database:
url: "postgresql://postgres:pass@postgres:5432/pathfinder_db"
embedding:
provider: "local"
model: "Xenova/all-MiniLM-L6-v2"
dimensions: 384
sources:
- name: "docs"
type: "code"
path: "/app/docs"
tools:
- name: "search-docs"
type: "search"
source: "docs"
Resulting Crash Logs:
Error: Invalid config at /app/pathfinder.yaml:
- sources.0.chunk: Required
- embedding.provider: Invalid enum value. Expected 'openai', received 'local'
- indexing.auto_reindex: Required
- indexing.reindex_hour_utc: Required
- indexing.stale_threshold_hours: Required
Expected Behavior:
- The schema should accept
"local" or "transformers.js" without throwing an enum error (and gracefully log a warning if the peer dependency is missing, rather than a fatal crash).
- Indexing cron variables should be optional with sensible defaults.
- Source chunk settings should fall back to a global parameter if omitted.
Current Workaround:
To get the container to boot, users currently have to map the schema exactly to "openai", supply the redundant cron/chunk boilerplate, and pass a dummy OPENAI_API_KEY=mock-key environment variable to bypass initialization.
Environment Context:
- Deployment: Docker (
ghcr.io/copilotkit/pathfinder:latest)
- Version:
1.13.3
This issue has been writen by AI but verified by a Human. I am too bad at writing thats why I used an AI to do it for me .. the issue is real nevertheless !!
When deploying the
ghcr.io/copilotkit/pathfinder:latest(v1.13.3) Docker image, the internal Zod configuration parser enforces several strict schema requirements that directly conflict with the official documentation, specifically regarding local embedding execution and minimal RAG setups.Even when running a custom built image that injects the
@xenova/transformerspeer dependency, the parser strictly locks out thelocal/transformers.jsproviders.The 3 Specific Validation Issues:
The documentation outlines support for in-process local embeddings via
transformers.jsorlocal. However, the current Zod validator drops these from the allowed enum block, resulting in an immediate crash:embedding.provider: Invalid enum value. Expected 'openai', received 'local'.The schema strictly requires the
indexingblock to define an automatic cron-job schedule (auto_reindex,reindex_hour_utc,stale_threshold_hours), even for users who want to run indexing manually or keep minimal configs.The parser demands a
chunkobject (target_tokens,overlap_tokens) explicitly nested inside every individual item in thesourcesarray, ignoring any global default settings.Steps to Reproduce:
Attempt to run the Docker container with this docs-compliant
pathfinder.yamlconfiguration:Resulting Crash Logs:
Expected Behavior:
"local"or"transformers.js"without throwing an enum error (and gracefully log a warning if the peer dependency is missing, rather than a fatal crash).Current Workaround:
To get the container to boot, users currently have to map the schema exactly to
"openai", supply the redundant cron/chunk boilerplate, and pass a dummyOPENAI_API_KEY=mock-keyenvironment variable to bypass initialization.Environment Context:
ghcr.io/copilotkit/pathfinder:latest)1.13.3This issue has been writen by AI but verified by a Human. I am too bad at writing thats why I used an AI to do it for me .. the issue is real nevertheless !!