Troubleshooting
Common issues and solutions for CrewForm Cloud and self-hosted deployments.Agent & Task Execution
Agent task stays in “Pending” state
Cause: The task runner isn’t running or can’t connect to Supabase. Solution:- Verify the task runner is running: check for
Task runner listening...in the logs - Check
SUPABASE_URLandSUPABASE_SERVICE_ROLE_KEYin the task runner’s.env - For self-hosted: ensure the task runner container is healthy (
docker compose ps)
“No API key found for provider” error
Cause: The LLM provider key isn’t configured or is incorrectly encrypted. Solution:- Go to Settings → API Keys
- Delete the existing key for the provider
- Re-add the key (it will be re-encrypted with AES-256-GCM)
Agent returns empty or truncated responses
Cause: Max tokens is set too low, or the model is hitting context limits. Solution:- Open the agent → increase Max Tokens (try 4096)
- If using a knowledge base with large documents, reduce chunk size
- Try a model with a larger context window (e.g.,
gemini-1.5-proat 1M tokens)
Task fails with “Rate limit exceeded”
Cause: Too many requests to the LLM provider in a short time. Solution:- Space out task executions
- For pipeline teams, increase the delay between steps
- Consider using a provider with higher rate limits (e.g., OpenRouter)
- For Ollama local models: no rate limits apply
Knowledge Base / RAG
Documents not being found in knowledge search
Cause: Embeddings may not have been generated, or the query doesn’t match the content semantically. Solution:- Check the knowledge base page — documents should show “Indexed” status
- Try rephrasing the query to match document language more closely
- Upload more specific, focused documents rather than large general ones
- Ensure the embedding model has finished processing (check task runner logs)
“knowledge_search tool not found” error
Cause: The agent doesn’t have a knowledge base attached. Solution:- Open the agent → Knowledge Base tab
- Upload at least one document
- Re-run the task
MCP Server Publishing
Claude Desktop doesn’t show CrewForm tools
Solution:- Verify your MCP config in Claude Desktop Settings → Developer → MCP Servers
- Check the JSON syntax — common issue is missing commas or quotes
- Restart Claude Desktop after any config change
- Verify the MCP API key starts with
cf_mcp_
”Unauthorized” error when calling MCP tools
Cause: Invalid or expired MCP API key. Solution:- Go to Settings → MCP Servers
- Generate a new MCP API key
- Update your client config with the new key
Published agent not appearing in MCP tool list
Solution:- Open the agent — verify the MCP Published button is green
- Check that the agent belongs to the same workspace as your MCP API key
- Wait 10-15 seconds for the tool list to refresh
Messaging Channels
Discord bot not responding
Solution:- Verify the bot token in Settings → Channels → Discord
- Check that the bot has been invited to the server with correct permissions (Send Messages, Read Message History)
- Ensure the correct guild and channel are selected
- Check task runner logs for connection errors
Slack messages not triggering agents
Solution:- Re-authenticate the Slack OAuth connection in Settings → Channels → Slack
- Verify the bot is added to the channel where you’re sending messages
- Check that the Slack app has the required scopes
Telegram bot not responding
Solution:- Verify the bot token from @BotFather
- Make sure you’ve sent
/startto your bot first - For group chats: the bot must be an admin or have group privacy disabled
Self-Hosting (Docker)
Container health check failing
Solution:Database migration errors
Solution:- Ensure you’re running migrations in numeric order
- Connect to your PostgreSQL instance and check which migrations have been applied
- For fresh installs, run the migration script:
bash scripts/migrate.sh
”CORS error” or “Unable to fetch” in browser
Cause: Nginx proxy or environment variable misconfiguration. Solution:- Check
APP_URLin your.envmatches the URL you’re accessing - Verify nginx config routes
/apiand/mcpto the correct backend ports - For SSL: ensure certificates are valid and nginx is configured for HTTPS
High memory usage / OOM crashes
Solution:- Add memory limits to
docker-compose.yml:
- Reduce concurrent task execution in task runner config
- Monitor with
docker stats
Observability & Tracing
Langfuse traces not appearing
Solution:- Verify
LANGFUSE_PUBLIC_KEY,LANGFUSE_SECRET_KEY, andLANGFUSE_HOSTare set in the task runner’s.env - Check that
ENABLE_TRACING=trueis set - Allow 30-60 seconds for traces to appear in the Langfuse dashboard
- Check task runner logs for Langfuse connection errors
OpenTelemetry export failing
Solution:- Verify
OTEL_EXPORTER_OTLP_ENDPOINTis correct - Ensure your collector (Jaeger, Grafana Tempo, Datadog) is running and accessible
- Check firewall rules allow outbound connections to the OTLP endpoint
Common Environment Issues
”Missing environment variable” on startup
Solution:- Compare your
.envagainst.env.example— new features may require new variables - After pulling updates, always check
.env.examplefor new entries - Required variables:
SUPABASE_URL,SUPABASE_ANON_KEY,ENCRYPTION_KEY
Different behavior between local and production
Cause: Environment variable differences. Solution:- Compare
.env.local(development) with your production.env - Ensure
VITE_APP_URLpoints to the correct domain in production - Check that the task runner’s
.envhas the correct production Supabase URL
Still Need Help?
- Discord: Join our community at discord.gg/TAFasJCTWs
- GitHub Issues: github.com/CrewForm/crewform/issues
- Email: team@crewform.tech

