Troubleshooting
Common issues and how to fix them.
Server Issues
Port 9876 already in use
Error: listen EADDRINUSE: address already in use :::9876Solution:
# Find what's using the port
lsof -i :9876
# Kill the process
kill -9 <PID>
# Or use a different port (not yet supported)Server won't start
Check Node.js version:
node --version
# Requires Node.js 18+Check for missing dependencies:
pnpm install
pnpm build"Command not found: sidebutton"
If globally installed but not found:
# Check npm bin path
npm bin -g
# Add to PATH if needed
export PATH="$PATH:$(npm bin -g)"Extension Issues
Extension not connecting
Is the server running?
bashcurl http://localhost:9876/healthRefresh the page and click "Connect This Tab" again
Check extension console:
- Right-click extension icon
- Click "Inspect popup"
- Check Console for errors
"Connect This Tab" doesn't appear
- Make sure you're on a regular webpage (not
chrome://pages) - Check that Developer mode is enabled in
chrome://extensions/ - Try reloading the extension
Automation doesn't work on specific sites
Some sites block automation. Check:
- Content Security Policy — Some sites block injected scripts
- Login state — Some actions require authentication
- Selector validity — Use
capture_pageto find correct selectors
Extension disconnects frequently
This can happen if:
- The server restarts
- Chrome suspends the service worker
- Network issues
Solution: Click the extension icon and reconnect.
Workflow Issues
"Workflow not found"
Error: Workflow not found: my_workflowCheck:
- Workflow file exists in
workflows/oractions/directory - File has
.yamlextension idin YAML matches the requested ID
"Browser not connected"
Error: BrowserNotConnectedSolution:
- Install the Chrome extension
- Navigate to a webpage
- Click extension icon → "Connect This Tab"
- Verify connection at localhost:9876
"Selector not found"
Error: Element not found: .my-selectorCheck:
- The selector is correct (use browser DevTools)
- The element exists on the page
- The page has fully loaded (add
browser.waitstep)
Find correct selector:
# Use the capture_page tool
curl -X POST http://localhost:9876/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"capture_page","arguments":{}}}'"OpenAI API key not configured"
Error: OpenAI API key not configuredSolution:
Set the environment variable:
export OPENAI_API_KEY=sk-your-key-here
npx @sidebutton/server serveOr configure in Settings (dashboard).
LLM step returns error
Common causes:
- Invalid API key
- Rate limiting
- Model not available
Check:
# Test API key directly
curl https://api.openai.com/v1/models \
-H "Authorization: Bearer $OPENAI_API_KEY"MCP Issues
Claude/Cursor doesn't see SideButton
Check config file location:
- Claude Code:
~/.claude/settings.json - Cursor:
~/.cursor/mcp.json - VS Code:
.vscode/mcp.json
- Claude Code:
Verify JSON syntax — Use a JSON validator
Restart the AI tool after config changes
Check server is accessible:
bashcurl http://localhost:9876/health
"Server returned error"
MCP error -32603: ...Common causes:
- Server not running
- Invalid parameters
- Browser not connected
Debug:
- Check server logs (terminal where server is running)
- Try the operation via dashboard first
- Check run logs for details
Tools not appearing in AI tool
- Restart the AI tool
- Check config URL is exactly
http://localhost:9876/mcp - Verify server responds to tools/list:bash
curl -X POST http://localhost:9876/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
Dashboard Issues
Dashboard shows "Server Disconnected"
- Check server is running
- Refresh the page
- Check browser console for errors (F12)
Workflows don't appear
- Check
workflows/andactions/directories exist - Verify YAML files have correct structure
- Check server logs for parsing errors
Run log is empty
Run logs are stored in run_logs/ directory. Check:
- Directory exists and is writable
- Workflows have been executed
- Try running a workflow and check again
Getting Help
If you can't resolve your issue:
- Check existing issues: GitHub Issues
- Search discussions: GitHub Discussions
- Open a new issue with:
- Error message (full text)
- Steps to reproduce
- OS and Node.js version
- Relevant logs
Debug Mode
For more detailed logs, set the DEBUG environment variable:
DEBUG=* npx @sidebutton/server serveThis will show detailed information about:
- WebSocket connections
- Workflow execution
- MCP requests/responses