Troubleshooting
Common problems and how to fix them.
Start with:
switchboard doctorIt checks Node.js, the state directory, the configuration, the daemon, the secret store, each server's command and secrets, your profiles and your clients' configuration files, and says what to change.
The client shows no tools
- Check the daemon is running:
switchboard status. Start it withswitchboard up, or use the stdio bridge, which starts it for you. - Check the profile has tools:
switchboard profile show <profile>. - A server that has never run has no tools in the catalog yet. Switchboard starts it when a client first lists tools, but if it fails to start it has none; run
switchboard server test <name>to see why. - Reload or restart the client after connecting it: most clients read their MCP configuration only at start.
"Unknown Switchboard profile"
The URL or the X-Switchboard-Profile header names a profile that does not exist. The error lists the profiles that do; fix the name, or create the profile. switchboard client ls shows which profile each connected client uses.
"No Switchboard profile for this client"
A client connected to /mcp without a header, no client rule matched its name, and there is no defaultProfile. Use a /p/<profile>/mcp URL, add a client rule, or set a default profile with switchboard default <profile>.
Port 7690 is already in use
switchboard up stops with Port 7690 is in use. Another program, or another Switchboard, is using the port. Run switchboard status to see whether it is Switchboard. To use another port, start with switchboard up --port 7700 or set SWITCHBOARD_PORT=7700, then connect your clients again so their URLs use the new port.
A server fails to start
switchboard server test <name>starts it and shows the error with the end of its stderr. The server's page in the web UI shows its recent stderr output, andswitchboard statusthe last error of each server.- A
secret://reference without a value stops the server from starting; set it withswitchboard secret set <name>or on the Secrets page. - For stdio servers,
switchboard doctorreports a command that is not onPATH. Check that the command works in your shell, with the same arguments. The daemon sees the environment of the shell that started it, not variables set elsewhere; put what the server needs in itsenv. - After a failed start, the server is retried with backoff, waiting up to 30 seconds; calls in between fail at once with the last error.
- An OAuth server that needs sign-in shows
needs-authas its state. Runswitchboard server auth <name>.
Tool calls time out in code mode
Code mode stops each run after 30 seconds and 64 tool calls by default. Raise budgets.timeoutMs or budgets.maxToolCalls on the profile, or have the model do less per run. See Code mode.
The model says a tool does not exist
With the meta surface, the model must search before calling. Most models do this from the tool descriptions; if one does not, ask it to use search_tools, or use passthrough for that profile if it is small.
Still stuck
Run the daemon with switchboard up --log debug (or SWITCHBOARD_LOG=debug) to see each server's stderr and every session, then open an issue on GitHub with the output of switchboard doctor.