Help Center

Troubleshooting Guide

Solutions to common Stompy issues. Search by symptom, error message, or topic.

33 results

|

Symptoms

  • Claude says "Stompy tools not available"
  • SSE connection fails
  • No Stompy tools appear in Claude Desktop

Why this happens

Claude Desktop cannot find or connect to the Stompy MCP server. This is usually a setup issue.

Solution

**Recommended: Use Custom Connector (easiest)** 1. Open Claude Desktop → Settings → Integrations 2. Click "Add Custom MCP Server" 3. Enter: `https://mcp.stompy.ai` 4. Sign in with your Stompy account 5. Done — no config files needed! **Alternative: Manual SSE config** If you prefer manual setup: 1. Verify your config file location: - **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` - **Windows**: `%APPDATA%\Claude\claude_desktop_config.json` 2. Ensure your bearer token is correct (get it from your Stompy dashboard) 3. Check your JSON syntax (no trailing commas, proper quotes) 4. **Completely restart Claude Desktop** (quit and reopen, not just close window) 5. Check Claude Desktop logs for errors

Example

// Option 1: Custom Connector (recommended)
// Claude Desktop → Settings → Integrations → Add Custom MCP Server
// Enter: https://mcp.stompy.ai → Sign in
// Option 2: Manual config
{
"mcpServers": {
"stompy": {
"url": "https://mcp.stompy.ai/sse",
"transport": "sse",
"headers": {
"Authorization": "Bearer YOUR_TOKEN_HERE"
}
}
}
}

Symptoms

  • Claude Desktop shows config error on startup
  • MCP servers fail to load
  • JSON parse error in logs

Why this happens

The claude_desktop_config.json file contains invalid JSON syntax such as trailing commas, missing quotes, or mismatched brackets.

Solution

1. Open your config file in a JSON validator (like jsonlint.com) 2. Common issues to check: - No trailing comma after the last item in objects/arrays - All keys must be in double quotes - No comments allowed in JSON 3. Use a code editor with JSON syntax highlighting 4. After fixing, restart Claude Desktop completely

Example

// WRONG - has trailing comma
{
"mcpServers": {
"stompy": {
"url": "https://mcp.stompy.ai/sse",
"transport": "sse",
"headers": {
"Authorization": "Bearer token", // <- Remove this comma!
}
}
}
}
// CORRECT
{
"mcpServers": {
"stompy": {
"url": "https://mcp.stompy.ai/sse",
"transport": "sse",
"headers": {
"Authorization": "Bearer YOUR_TOKEN_HERE"
}
}
}
}

Symptoms

  • Connection to Stompy server failed
  • SSE endpoint unreachable
  • Network error when connecting

Why this happens

The SSE connection to Stompy servers cannot be established. This may be due to network issues, firewall restrictions, or server maintenance.

Solution

1. Verify the SSE URL is correct in your config: `https://mcp.stompy.ai/sse` 2. Check your internet connection 3. Try accessing https://mcp.stompy.ai in your browser 4. If behind a corporate firewall, ensure SSE connections are allowed 5. Check Stompy status page for any service outages 6. Verify your bearer token is valid and not expired

Example

{
"mcpServers": {
"stompy": {
"url": "https://mcp.stompy.ai/sse",
"transport": "sse",
"headers": {
"Authorization": "Bearer YOUR_TOKEN_HERE"
}
}
}
}

Symptoms

  • Unauthorized error when using Stompy tools
  • Token expired or invalid
  • Authentication failed
  • 401 or 403 errors

Why this happens

Your Stompy bearer token is missing, expired, or incorrectly configured in the Authorization header.

Solution

1. Get your token from the Stompy dashboard (https://www.stompy.ai/dashboard) 2. Add your token to the config with the "Bearer " prefix: ```json { "mcpServers": { "stompy": { "url": "https://mcp.stompy.ai/sse", "transport": "sse", "headers": { "Authorization": "Bearer YOUR_TOKEN_HERE" } } } } ``` 3. Ensure "Bearer " prefix is included (with a space after Bearer) 4. Check if your token has expired in the dashboard 5. Restart Claude Desktop after updating the token

Symptoms

  • New user, tools not working
  • Unsure if setup is correct
  • Want to verify installation

Why this happens

First-time setup requires several steps to be completed in the correct order.

Solution

**Quick Setup (Custom Connector):** 1. ✅ Stompy account created at stompy.ai 2. ✅ Claude Desktop → Settings → Integrations → Add Custom MCP Server 3. ✅ Enter `https://mcp.stompy.ai` and sign in 4. ✅ Test with: "Use project_list to show my Stompy projects" **Manual Setup (SSE + Bearer Token):** 1. ✅ Stompy account created at stompy.ai 2. ✅ Bearer token obtained from dashboard 3. ✅ claude_desktop_config.json created in correct location 4. ✅ SSE config with correct URL and token 5. ✅ Config JSON syntax is valid (no trailing commas) 6. ✅ Claude Desktop completely restarted 7. ✅ Test with: "Use project_list to show my Stompy projects" **Quick test command to ask Claude:** "Can you run project_list() to verify Stompy is connected?"

Example

// Custom Connector (recommended - no config files!)
// Claude Desktop → Settings → Integrations
// → Add Custom MCP Server → https://mcp.stompy.ai
// Or manual config:
{
"mcpServers": {
"stompy": {
"url": "https://mcp.stompy.ai/sse",
"transport": "sse",
"headers": {
"Authorization": "Bearer YOUR_TOKEN_HERE"
}
}
}
}
Related tools:project_list

Symptoms

  • One MCP server works but not others
  • Tools from different servers mixed up
  • Intermittent connection issues

Why this happens

When running multiple MCP servers, they may have conflicting tool names or resource contention.

Solution

1. Check each server is using a unique name in config: ```json { "mcpServers": { "stompy": { ... }, "other-server": { ... } } } ``` 2. Ensure servers don't have overlapping tool names 3. If issues persist, temporarily disable other servers to isolate the problem 4. Check Claude Desktop logs for specific error messages 5. Each MCP server runs as a separate process - verify all are starting

Symptoms

  • Unsure where to add bearer token
  • Token not being recognized
  • Need to configure authentication

Why this happens

Stompy uses bearer token authentication in the HTTP headers of the SSE connection.

Solution

Your bearer token goes directly in the config file's headers section: 1. Get your token from https://www.stompy.ai/dashboard 2. Add it to your claude_desktop_config.json with the "Bearer " prefix: ```json { "mcpServers": { "stompy": { "url": "https://mcp.stompy.ai/sse", "transport": "sse", "headers": { "Authorization": "Bearer YOUR_TOKEN_HERE" } } } } ``` 3. Replace YOUR_TOKEN_HERE with your actual token 4. Restart Claude Desktop completely **Important:** The token goes in the config file, not in environment variables.

Symptoms

  • Features not working as documented
  • Unexpected tool behavior
  • New parameters or options available

Why this happens

Stompy is a hosted service that receives regular updates. New features or changes may affect tool behavior.

Solution

1. Check the Stompy changelog at stompy.ai/dashboard for recent updates 2. Stompy is a hosted service - updates happen automatically server-side 3. Restart Claude Desktop to refresh the tool list 4. If a tool has new parameters, check the updated documentation 5. Report unexpected behavior via bug_report: ``` bug_report( title="Tool behavior changed", description="Describe what changed", severity="medium" ) ```
Related tools:bug_report

Symptoms

  • recall_context returns "not found"
  • Context exists but cannot be retrieved
  • Topic name not recognized

Why this happens

The topic name does not exist, has a typo, or you are looking in the wrong project.

Solution

1. List all contexts to find the exact topic name: ``` context_explore(project="my_project") ``` 2. Check you're looking in the correct project: ``` project_list() ``` 3. Use search to find similar topics: ``` context_search("partial topic name", project="my_project") ``` 4. Topic names are case-sensitive - verify exact spelling 5. Check if context was archived/deleted with db_query

Example

// Find all contexts in a project
context_explore(project="my_project")
// Search for contexts about authentication
context_search("authentication")
// Recall with exact topic name
recall_context("auth-api-rules")
Related tools:recall_contextcontext_explorecontext_search

Symptoms

  • lock_context fails with "novelty" error
  • Content rejected as redundant
  • "Delta evaluation: <10% novelty" message

Why this happens

Stompy prevents storing duplicate content. If your new context is more than 90% similar to existing contexts, it will be rejected to prevent clutter.

Solution

1. First, search for existing similar contexts: ``` context_search("your topic keywords") ``` 2. If the content already exists, use recall_context instead 3. If you need to update existing content, it creates a new version automatically 4. To force store despite similarity (use sparingly): ``` lock_context( content="...", topic="my-topic", force_store=True ) ``` 5. Consider if you really need separate contexts or should update existing one

Example

// Check what similar content exists
context_search("API authentication rules")
// If updating, just lock with same topic (creates new version)
lock_context(
content="Updated auth rules...",
topic="auth-rules" // Same topic = new version
)
// Force store if intentionally similar
lock_context(
content="Similar but distinct content...",
topic="auth-rules-v2",
force_store=True
)
Related tools:lock_contextcontext_searchrecall_context

Symptoms

  • Need older version of context
  • Want to see version history
  • Accidentally overwrote content

Why this happens

Contexts are versioned (1.0, 1.1, etc.) and you may need to access a specific version rather than the latest.

Solution

1. Get the latest version (default): ``` recall_context("my-topic") ``` 2. Get a specific version: ``` recall_context("my-topic", version="1.0") ``` 3. See version history with db_query: ``` db_query( "SELECT version, created_at FROM context_locks WHERE label = %s ORDER BY version", params=["my-topic"] ) ``` 4. All versions are preserved - originals are never deleted when you update

Example

// Get latest version
recall_context("api-spec")
// Get original version
recall_context("api-spec", version="1.0")
// Get specific version
recall_context("api-spec", version="1.2")
Related tools:recall_contextdb_query

Symptoms

  • Unsure which priority to use
  • Context not appearing in searches
  • Critical rules being missed

Why this happens

Stompy has three priority levels that affect how contexts are retrieved and displayed.

Solution

**Priority Levels:** 1. **always_check** - Critical rules, must never be forgotten - Use for: MUST/NEVER rules, security requirements, critical configs - These surface first in searches - Require `force=True` to delete 2. **important** - Frequently needed information - Use for: API specs, architecture decisions, common patterns - Default for most documentation 3. **reference** - Occasionally useful (default) - Use for: Examples, historical context, nice-to-know info - Lower priority in search results **Tip:** Start with "reference" and upgrade to "important" or "always_check" as needed.

Example

// Critical security rule
lock_context(
content="NEVER store passwords in plain text",
topic="security-rules",
priority="always_check"
)
// Important API documentation
lock_context(
content="API uses JWT with 15min expiry...",
topic="api-auth",
priority="important"
)
// Reference material (default)
lock_context(
content="Historical context about v1 API...",
topic="api-v1-history"
// priority defaults to "reference"
)
Related tools:lock_contextcontext_search

Symptoms

  • context_search returns empty
  • Know content exists but search fails
  • Semantic search not finding matches

Why this happens

The search query may not semantically match your content, or you may be searching in the wrong project.

Solution

1. Verify you're searching the correct project: ``` project_list() context_search("auth", project="my_project") ``` 2. Try broader search terms: ``` context_search("auth") // Instead of "JWT authentication tokens" ``` 3. List all contexts to see what exists: ``` context_explore() ``` 4. Search by tags if you used them: ``` context_search("", tags="api,security") ``` 5. Disable semantic search for exact keyword matching: ``` context_search("exact phrase", use_semantic=False) ```

Example

// Broad semantic search
context_search("authentication")
// Search with tag filter
context_search("api", tags="security")
// Keyword-only search (no semantic)
context_search("JWT token", use_semantic=False)
// Search with priority filter
context_search("rules", priority="always_check")
Related tools:context_searchcontext_explore

Symptoms

  • Search finds unexpected results
  • Exact phrase not matching
  • Want literal string matching

Why this happens

By default, context_search uses semantic search (meaning-based) not keyword matching. This finds conceptually related content but may miss exact phrases.

Solution

**Semantic Search (default):** - Finds content by meaning, not exact words - "auth" finds "authentication", "login", "JWT" - Better for discovery **Keyword Search:** - Exact text matching - Use when you know the exact term - Enable with `use_semantic=False` **Hybrid Approach:** Stompy tries semantic first, falls back to keyword if no results.

Example

// Semantic: finds related concepts
context_search("how users log in")
// Might find: "authentication", "JWT tokens", "session management"
// Keyword: exact matching
context_search("JWT", use_semantic=False)
// Only finds contexts containing "JWT"
// Combine with filters for precision
context_search("authentication", priority="important", tags="api")
Related tools:context_search

Symptoms

  • unlock_context fails for critical context
  • "Requires force=True" error
  • Cannot remove always_check priority context

Why this happens

Contexts with priority="always_check" are protected from accidental deletion. This is a safety feature for critical rules.

Solution

1. Verify you really want to delete this critical context 2. Use force=True to override protection: ``` unlock_context("critical-topic", force=True) ``` 3. By default, contexts are archived before deletion (recoverable) 4. To skip archiving (permanent delete): ``` unlock_context("topic", force=True, archive=False) ``` **Tip:** Consider changing priority to "reference" instead of deleting if you might need it later.

Example

// Protected by default - this fails:
unlock_context("security-rules")
// Error: Critical context requires force=True
// Override protection:
unlock_context("security-rules", force=True)
// Archived and deleted
// Alternative: downgrade priority
// (Update the context with lower priority instead)
Related tools:unlock_contextlock_context

Symptoms

  • Confused about versions
  • Want to understand update behavior
  • Need to manage context history

Why this happens

Understanding how Stompy versions contexts helps you manage knowledge effectively.

Solution

**How Versioning Works:** 1. First lock_context with a topic → creates v1.0 2. Lock again with same topic → creates v1.1 (v1.0 preserved) 3. Each version is immutable once created 4. recall_context gets latest by default **Version Numbers:** - Major.Minor format (1.0, 1.1, 1.2...) - Minor increments on updates - All versions retained forever **Best Practices:** - Use consistent topic names for related content - Let versioning handle updates (don't create "topic-v2") - Use db_query to see full version history

Example

// Create initial version (v1.0)
lock_context(content="Initial API spec", topic="api-spec")
// Update creates v1.1 (v1.0 still exists)
lock_context(content="Updated API spec", topic="api-spec")
// Recall latest
recall_context("api-spec") // Gets v1.1
// Recall original
recall_context("api-spec", version="1.0") // Gets v1.0
// See all versions
db_query("SELECT version, created_at FROM context_locks WHERE label = 'api-spec'")
Related tools:lock_contextrecall_contextdb_query

Symptoms

  • ticket_board shows empty board
  • ticket_search returns no results
  • Ticket ID not recognized

Why this happens

Tickets are project-scoped. You may be looking in the wrong project, or no tickets have been created yet.

Solution

1. Check you're looking in the correct project: ``` ticket_board(view="summary", project="my_project") ``` 2. List all projects to find the right one: ``` project_list() ``` 3. Create your first ticket if none exist: ``` ticket(action="create", title="My first ticket", project="my_project") ``` 4. Search across all ticket fields: ``` ticket_search("keyword", project="my_project") ```

Example

// View board for a specific project
ticket_board(view="summary", project="my_project")
// Search tickets
ticket_search("authentication", project="my_project")
// Create a ticket
ticket(action="create", title="Add login page", priority="high", project="my_project")
Related tools:ticketticket_boardticket_search

Symptoms

  • Unsure how to move tickets between columns
  • Want to update ticket status
  • Need to close a ticket

Why this happens

Tickets follow a status workflow. Understanding the available statuses helps manage your board.

Solution

**Ticket Statuses:** - **backlog** — Not yet started - **in_progress** — Currently being worked on - **done** — Completed **Update a ticket:** ``` ticket(action="update", ticket_id="TKT-1", status="in_progress") ``` **Close a ticket:** ``` ticket(action="update", ticket_id="TKT-1", status="done") ``` **View the board to see all statuses:** ``` ticket_board(view="summary") ```

Example

// Create a ticket (starts in backlog)
ticket(action="create", title="Implement OAuth", priority="high")
// Start working on it
ticket(action="update", ticket_id="TKT-1", status="in_progress")
// Mark as done
ticket(action="update", ticket_id="TKT-1", status="done")
// View the board
ticket_board(view="summary")
Related tools:ticketticket_board

Symptoms

  • Want to connect a ticket to stored knowledge
  • Need to reference a context from a ticket
  • ticket_link usage unclear

Why this happens

Tickets can be linked to contexts so Claude sees both your task board and the knowledge behind each task.

Solution

Use ticket_link to connect tickets to contexts: ``` ticket_link( ticket_id="TKT-5", context_topic="api-architecture", note="Ticket implements the spec in this context" ) ``` When you view the ticket, linked contexts are shown alongside it. This helps Claude understand the full picture when working on a task.

Example

// Link a ticket to a context
ticket_link(
ticket_id="TKT-5",
context_topic="api-architecture"
)
// View the ticket with its links
ticket(action="get", ticket_id="TKT-5")
Related tools:ticket_linkticketrecall_context

Symptoms

  • Want to upload a PDF or image
  • Need to ingest a document into Stompy
  • Looking for file upload functionality
  • How to store files in a project

Why this happens

Document uploads (PDFs, images, code files) are handled through the Stompy web dashboard, not via MCP tools. The dashboard supports drag-and-drop with progress tracking.

Solution

**Upload documents via the web dashboard:** 1. Go to **stompy.ai/dashboard** 2. Navigate to your project → **Documents** tab 3. Click **Upload** or drag and drop files 4. Set tags and priority, then confirm **Supported files:** PDFs, images (PNG, JPG, GIF, WebP, SVG), code files (50+ extensions), spreadsheets, markdown, CSV, and more. **Limits:** 10 MB per file, 50 MB per batch, up to 20 files at once. **What happens after upload:** - Files are stored in S3 - Text is extracted and embedded for semantic search - Images get AI-generated descriptions - Content becomes searchable via context_search **For text content (no file needed):** Use lock_context directly from Claude: ``` lock_context(content="Your text here", topic="my-topic") ```
Related tools:lock_contextcontext_search

Symptoms

  • "Embedding generation failed" error
  • Context stored but not searchable
  • VoyageAI errors

Why this happens

Text embeddings are generated by VoyageAI. If the service is unavailable, contexts may be stored without embeddings.

Solution

1. Context is still stored - just not semantically searchable yet 2. Embeddings can be generated later (lazy loading) 3. Use keyword search as fallback: ``` context_search("topic name", use_semantic=False) ``` 4. For new contexts, use lazy=True to defer embedding: ``` lock_context(content="...", topic="...", lazy=True) ``` Embedding will generate on first search. 5. If persistent, service may need time to recover
Related tools:lock_contextcontext_search

Symptoms

  • db_query rejects INSERT/UPDATE/DELETE
  • "Write operation not allowed" error
  • Need to modify data directly

Why this happens

db_query is read-only by design. Stompy only provides read-only database access to protect your data integrity. Use the dedicated tools (lock_context, unlock_context, ticket, etc.) for write operations.

Solution

**db_query** = Read-only (SELECT only) - Safe for exploration and inspection - Auto-adds LIMIT 100 - No confirmation needed **For write operations, use dedicated tools:** - `lock_context` / `unlock_context` — manage contexts - `ticket(action="create")` — create/update tickets - `project_create` / `project_delete` — manage projects ``` // Reading data — use db_query db_query("SELECT * FROM context_locks WHERE priority = 'important'") // Inspecting schema — use db_schema db_schema(table="context_locks") // Writing data — use dedicated tools lock_context(content="...", topic="my-topic") ```

Example

// Read operation - use db_query
db_query("SELECT label, priority FROM context_locks")
// Inspect table structure
db_schema(table="context_locks")
// For writes, use dedicated tools instead:
lock_context(content="Updated rules", topic="auth-rules")
Related tools:db_querydb_schema

Symptoms

  • db_schema shows no tables
  • Cannot see database structure
  • Schema appears empty

Why this happens

You may be looking at the wrong project schema, or the project has not been initialized with any data yet.

Solution

1. Verify you're looking at the correct project: ``` project_list() db_schema(project="my_project") ``` 2. View schema for a specific project: ``` db_schema(project="my_project") ``` 3. View specific table: ``` db_schema(table="context_locks") ``` 4. If new project, create some content first: ``` lock_context(content="test", topic="test", project="my_project") ``` 5. Standard tables: context_locks, sessions, conflicts, tickets

Example

// List all tables in a project
db_schema(project="my_project")
// Get details for specific table
db_schema(table="context_locks")
// Query table structure directly
db_query("SELECT column_name, data_type FROM information_schema.columns WHERE table_name = 'context_locks'")
Related tools:db_schemadb_query

Symptoms

  • Query takes too long
  • Operation timed out
  • Large result set issues

Why this happens

Complex queries or large result sets can exceed timeout limits. db_query auto-adds LIMIT 100 for safety.

Solution

1. db_query automatically adds LIMIT 100 - for more results use pagination: ``` // First 100 db_query("SELECT * FROM context_locks") // Next 100 db_query("SELECT * FROM context_locks OFFSET 100 LIMIT 100") ``` 2. Add WHERE clauses to filter results: ``` db_query("SELECT * FROM context_locks WHERE priority = 'important'") ``` 3. Select only needed columns: ``` db_query("SELECT label, version FROM context_locks") // Faster than SELECT * ``` 4. Use get_query_page for paginated results from tools that support it

Example

// Efficient: select specific columns with filter
db_query(
"SELECT label, priority, version FROM context_locks WHERE priority = %s",
params=["important"]
)
// Paginate large results
db_query("SELECT * FROM context_locks LIMIT 50")
db_query("SELECT * FROM context_locks LIMIT 50 OFFSET 50")
Related tools:db_queryget_query_page

Symptoms

  • Contexts from wrong project appearing
  • Confused about project boundaries
  • Want to understand data separation

Why this happens

Each Stompy project is a completely isolated PostgreSQL schema. Understanding this helps manage multiple projects effectively.

Solution

**How Project Isolation Works:** 1. Each project = separate PostgreSQL schema 2. Zero data bleed between projects 3. Contexts, tickets, sessions are all project-specific 4. Use the project parameter on any tool to target a specific project **Best Practices:** - Use project_list() to see all projects - Pass project="name" to scope any tool - Name projects clearly (client-name, project-type) **When to use separate projects:** - Different clients - Unrelated codebases - Separate knowledge domains - Personal vs work

Example

// See all projects
project_list()
// Scope operations to a project via the project param
lock_context(content="Acme API spec", topic="api", project="client_acme")
// This context only exists in client_acme project
// Search a different project
context_search("auth", project="personal_blog")
// Cannot see client_acme contexts here
Related tools:project_listproject_createproject_info

Symptoms

  • Tool returns "project not found" error
  • Cannot access project data
  • Project name not recognized

Why this happens

The project name may be misspelled, not yet created, or you may need to use the exact name.

Solution

1. Verify project exists: ``` project_list() ``` 2. Use exact project name (case-sensitive): ``` context_explore(project="my_project") // Exact match required ``` 3. Check project details: ``` project_info(project="my_project") ``` 4. If project doesn't exist, create it: ``` project_create("new_project") ``` 5. All tools accept the project parameter directly — no switching needed.

Example

// List available projects
project_list()
// Access a specific project
context_explore(project="my_project")
// Create if doesn't exist
project_create("new_project")
Related tools:project_listproject_createproject_info

Symptoms

  • Previous session context missing
  • Handover shows empty
  • "No handover available" message

Why this happens

Handover summaries are created at session end. If no previous session exists or it was empty, there may be no handover to load.

Solution

1. Handover requires a previous session with activity 2. Check if handover exists: ``` project_info(project="my_project") ``` 3. Handover is optional - project works without it 4. View recent sessions manually: ``` db_query("SELECT * FROM sessions ORDER BY created_at DESC LIMIT 5") ``` **Note:** First session in a new project won't have handover. Handovers load automatically when Claude connects to your project.
Related tools:project_info

Symptoms

  • project_delete fails
  • "Requires confirmation" error
  • Project deletion blocked

Why this happens

Project deletion is destructive and requires explicit confirmation to prevent accidental data loss.

Solution

**Project deletion is permanent!** 1. Deletion requires confirm=True: ``` project_delete("old_project", confirm=True) ``` 2. Before deleting, review what's in the project: ``` project_info(project="old_project") context_explore(project="old_project") ``` 3. Verify project name is correct: ``` project_list() ``` 4. All data in project will be lost: - Contexts - Tickets - Sessions

Example

// First, review what will be deleted
project_info(project="old_project")
context_explore(project="old_project")
// Delete with explicit confirmation
project_delete("old_project", confirm=True)
// Verify deletion
project_list()
Related tools:project_deleteproject_info

Symptoms

  • Embedding generation fails
  • Semantic search not working
  • VoyageAI API errors

Why this happens

VoyageAI provides embeddings for semantic search. Service outages or rate limits can cause temporary failures.

Solution

1. Stompy uses VoyageAI voyage-4 for text embeddings 2. During outages: - lock_context still works (embedding deferred) - Use lazy=True to defer embedding - Keyword search still works 3. Fallback to keyword search: ``` context_search("query", use_semantic=False) ``` 4. Deferred embeddings generate on first search: ``` lock_context(content="...", topic="...", lazy=True) ``` 5. Check Stompy status page for service updates
Related tools:lock_contextcontext_search

Symptoms

  • Image analysis fails
  • No description generated for images
  • Vision API timeout

Why this happens

OpenRouter provides AI vision for image analysis. This is optional - images work without it.

Solution

1. Image storage works independently of vision API 2. Vision API provides: - AI-generated image descriptions - Searchable content from images - Uses Qwen 2.5 VL model 3. If vision fails: - Image still stored in S3 - Manually add description: ``` lock_context( content="Description of image: [your text]", topic="image-description", tags="image" ) ``` 4. Check image size (max 1920x1080 processed) 5. Retry later for temporary issues
Related tools:lock_context

Symptoms

  • Document upload fails
  • S3 authentication error
  • Cannot store files

Why this happens

Document storage requires S3/DigitalOcean Spaces credentials. This is typically configured server-side.

Solution

1. Document storage is a hosted feature - credentials are managed by Stompy 2. If you're seeing storage errors: - This may be a temporary service issue - Retry in a few minutes - Check Stompy status page 3. Context storage (lock_context) doesn't require S3: ``` lock_context(content="Your content as text", topic="my-topic") ``` 4. For self-hosted Stompy (advanced): - Configure DO_SPACES_* environment variables - Or AWS S3 credentials 5. Report persistent issues via bug_report
Related tools:bug_report

Symptoms

  • lock_context times out
  • Large content fails to store
  • Operation exceeds time limit

Why this happens

Very large contexts take longer to process (embedding generation, storage). Consider chunking or using lazy embedding.

Solution

**For large content:** 1. Use lazy embedding (defers processing): ``` lock_context( content="very long content...", topic="large-doc", lazy=True ) ``` 2. Consider splitting into multiple contexts: - "project-overview" - high-level summary - "project-api-details" - API specifics - "project-database" - DB schema 3. Store summary + reference to full doc: ``` lock_context( content="Summary of large doc. Full version at: [location]", topic="doc-summary" ) ```

Example

// Defer embedding for large content
lock_context(
content="Very long technical specification...",
topic="full-spec",
lazy=True // Embedding generated on first search
)
// Better: split into logical chunks
lock_context(content="Overview...", topic="spec-overview")
lock_context(content="API details...", topic="spec-api")
lock_context(content="Data models...", topic="spec-models")
Related tools:lock_context

Still need help?

If you can't find the solution here, you can report a bug directly from Claude.

bug_report(
title="Describe the issue",
description="What happened and what you expected",
severity="medium"
)