Reference
Troubleshooting
Solutions to common issues when using Kyew.
Connection Issues
"Authentication failed"
Symptoms: Can't connect, auth errors
Solutions:
- Clear browser cookies and re-authenticate
- Ensure popups aren't blocked for OAuth
- Try a different browser
- Check that you're using a valid Google account
"Connection refused"
Symptoms: Can't reach server
Solutions:
- Check internet connection
- Verify server status at mcp.kyew.ai/health
- Reconnect:
claude mcp remove kyew claude mcp add kyew --transport http --scope user https://mcp.kyew.ai/mcp
"Tools not showing up"
Symptoms: Kyew tools not available in Claude
Solutions:
- Restart Claude Code or Claude Desktop
- Verify connection:
claude mcp list - Re-authenticate if session expired
Memory Issues
"Memory not found"
Symptoms: Can't recall a memory you stored
Possible causes:
- Memory was forgotten/deleted
- Searching in wrong domain
- Typo in search query
Solutions:
- Search without domain filter:
memory(action="recall", query="...") - Use broader search terms
- Check if memory was superseded by a correction
- Verify with
system(action="stats")to see memory count
"Recall returns no results"
Symptoms: Search finds nothing
Solutions:
- Try simpler search terms
- Remove domain filter
- Check that you have memories stored
- Search across everything:
memory(action="recall", query="...", include="all")
Skill Issues
"Skill not being suggested"
Symptoms: Expected skill isn't recommended
Possible causes:
- Skill is still in draft status
- Skill triggers don't match context
- Skill is deprecated
Solutions:
- Check skill status:
skill(action="list", id="...") - If draft, approve it:
skill(action="update", id="...", status="active") - Update triggers to match your context
"Can't approve skill"
Symptoms: Approval fails
Solutions:
- Check pending skills:
skill(action="list", status="draft") - Verify skill ID is correct
- System skills cannot be modified — they're read-only
Custom Tool Issues
"Tool execution failed"
Symptoms: Custom tool returns error
Solutions:
- Test the tool:
tool(action="test", tool_id="...", test_input={...}) - Check configuration is correct
- For HTTP tools, verify connection credentials
"HTTP proxy returns 401/403"
Symptoms: API authentication fails
Solutions:
- Check connection credentials:
connection(action="get_token", connection_id="...") - Verify API key/token hasn't expired
- For OAuth2 connections, re-authorize:
connection(action="authorize", connection_id="...") - Ensure connection uses correct auth type
"Transform expression error"
Symptoms: JSONata evaluation fails
Solutions:
- Validate JSONata at try.jsonata.org
- Remember to access input via
input.field - Use JSONata functions, not JavaScript methods
Code Tool Issues
"handler.fetch is not a function"
Symptoms: Code tool fails immediately
Cause: Wrong export format.
Fix: Use the Workers module format:
// Correct
export default {
async fetch(request) {
const input = await request.json();
return Response.json({ result: "ok" });
}
};
// Wrong — causes this error
export default async function(input) { ... }
"Execution timeout"
Symptoms: Code takes too long
Solutions:
- Optimize code
- Increase timeout_ms when creating tool (max 300000)
- Break into smaller operations
"Fetch failed: domain not allowed"
Symptoms: Code can't make HTTP request
Solutions:
- Add domain to
allowed_domainsin code_config - Update tool:
tool(action="update", tool_id="...", code_config={..., allowed_domains: ["api.example.com"]})
"query() returns unexpected results"
Symptoms: Database queries return undefined or wrong data
Common pitfalls:
// Wrong: params as array
await query("SELECT * FROM t WHERE a = ? AND b = ?", [val1, val2]);
// Fix: spread params
await query("SELECT * FROM t WHERE a = ? AND b = ?", val1, val2);
// Wrong: direct indexing
const row = (await query("SELECT * FROM t"))[0];
// Fix: access .rows
const row = (await query("SELECT * FROM t")).rows[0];
"eval() / new Function() blocked"
Symptoms: Code fails with security error
Cause: Dynamic code evaluation is blocked in the sandbox.
Fix: Restructure code to avoid eval/new Function. Use static logic instead.
Connection Issues (API Connections)
"Secret URL not working"
Symptoms: Browser link for credential entry doesn't load or doesn't save
Solutions:
- Generate a new URL:
connection(action="secret_url", connection_id="...") - URLs are single-use — if already used, generate a new one
- Check connection still exists:
connection(action="list")
"OAuth2 authorization fails"
Symptoms: OAuth flow doesn't complete
Solutions:
- Ensure redirect URI is correct (dynamic based on host)
- Check provider credentials (client ID/secret)
- Verify OAuth scopes are valid for the provider
- Try again:
connection(action="authorize", connection_id="...")
"Connection env vars not available in code tool"
Symptoms: process.env.KYEW_CONN_* is undefined
Solutions:
- Verify connection_ids includes the connection ID in code_config
- Check connection name — env var uses uppercased name with non-alphanumeric → underscores
- Verify connection has active credentials:
connection(action="get_token", connection_id="...")
Scheduling Issues
"Scheduled tool not running"
Symptoms: Tool doesn't execute at scheduled time
Solutions:
- Verify tool is active (not draft):
tool(action="get", tool_id="...") - Check schedule is enabled:
tool(action="schedule", schedule_action="list") - Verify timezone is correct — hours are in local time
- Check if auto-paused after 3 failures:
tool(action="schedule", schedule_action="history", tool_id="...") - Re-enable:
tool(action="schedule", tool_id="...", schedule={enabled: true})
"Email summaries not arriving"
Symptoms: Tool runs but no email
Solutions:
- Verify email_summary is enabled in schedule
- Check email_address is correct (defaults to account email)
- Check spam folder
- Review run history for errors:
tool(action="schedule", schedule_action="history", tool_id="...")
Remote MCP Issues
"Remote server tools not available"
Symptoms: Added a server but can't use its tools
Solutions:
- Check server status:
mcp(action="list") - Refresh tools:
mcp(action="refresh", server_id="...") - Use gateway tool to discover:
{tool_prefix}(action="tools") - Verify server URL is correct and reachable
"Gateway tool call fails"
Symptoms: Calling a remote tool returns error
Solutions:
- Verify auth is set up if server requires it (connection_id or headers)
- Check tool name matches exactly:
{tool_prefix}(action="search", query="...") - Remote server may be down — check its status independently
Rate Limiting
"Rate limited"
Symptoms: 429 error, requests rejected
Solutions:
- Wait and retry
- Reduce request frequency
- Batch operations where possible
Getting Help
If these solutions don't resolve your issue:
- Check server status: mcp.kyew.ai/health
- Report an issue:
system(action="feedback", title="...", description="...") - Try disconnecting and reconnecting
- Check the Kyew discovery tool:
kyew(action="help")