xpipe-io/xpipe · error · BeaconClientException
No connection found for input " + name
Error message
No connection found for input " + name
What it means
McpToolHandler.getDataStoreRef resolves a connection by user-supplied name via DataStorageQuery.queryUserInput and throws this BeaconClientException when the query returns no entries. The name did not match any stored connection in the XPipe data storage.
Solutions
- Check the exact connection name in the XPipe UI and use it verbatim in the tool call
- List available connections first (e.g. via an MCP list/query tool) and pick a valid identifier
- Recreate the connection if it was deleted, or point the call at an existing one
- Catch BeaconClientException and prompt the user for a corrected connection name
Example fix
// before
req.getDataStoreRef("prod-db-1") // connection does not exist
// after
req.getDataStoreRef("Producers / prod-db") // exact stored path Defensive patterns
Strategy: validation
Validate before calling
// validate before the tool call
const connections = await listConnections(); // e.g. via an MCP listing tool
if (!connections.some(c => c.name === requestedName)) {
throw new Error(`connection '${requestedName}' not found; available: ${connections.map(c => c.name).join(', ')}`);
} Try / catch
try { return tool.call({name}); } catch (BeaconClientException e) { if (e.message.startsWith('No connection found for input')) { /* re-list connections and retry with an exact name */ } throw e; } Prevention
- Resolve connection names from a live listing, not from memory or docs
- Use the full store path shown in the XPipe UI for uniqueness
- Re-verify names after renaming or deleting connections
When it happens
Trigger: Calling an MCP tool with a connection 'name'/'system' argument that matches zero connections: nonexistent connection, deleted connection, or a typo/different casing.
Common situations: Connection was renamed or removed after the tool call was authored; querying by display name when only a path fragment matches; working against a different data storage install (different machine/user profile) that lacks the connection.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- Multiple connections found: " + connectionPaths
- Connection is not a shell connection
- Directory does already exist
- Directory does not exist
- File does already exist
AI-assisted analysis of xpipe-io/xpipe@d85ca821ba (2026-09-06).
Data as JSON: /api/errors/d46c1b8890231c08.
Report an issue: GitHub.
Appendix: source
Thrown at app/src/main/java/io/xpipe/app/beacon/mcp/McpToolHandler.java:138
throw new BeaconClientException("Invalid argument for key " + key);
}
return b;
}
public FilePath getFilePath(ShellControl sc, String key) throws Exception {
var s = getStringArgument(key);
var path = FilePath.parse(s);
if (path == null) {
throw new BeaconClientException("Invalid argument for key " + key);
}
return path.resolveTildeHome(sc.view().userHome());
}
public DataStoreEntryRef<?> getDataStoreRef(String name) throws BeaconClientException {
var found = DataStorageQuery.queryUserInput(name);
if (found.isEmpty()) {
throw new BeaconClientException("No connection found for input " + name);
}
if (found.size() > 1) {
throw new BeaconClientException("Multiple connections found: "
+ found.stream()
.map(entry ->
DataStorage.get().getStorePath(entry).toString())
.toList());
}
var e = found.getFirst();
return e.ref();
}
public DataStoreEntryRef<ShellStore> getShellStoreRef(String name, boolean mutation)
throws BeaconClientException {
var ref = getDataStoreRef(name);
var isShell = ref.getStore() instanceof ShellStore;View on GitHub (pinned to d85ca821ba)