{"record":{"id":"9969df1be9410821","repo":"xpipe-io/xpipe","slug":"e","errorCode":null,"errorMessage":"e","messagePattern":"e","errorType":"exception","errorClass":"BeaconServerException","httpStatus":null,"severity":"error","filePath":"app/src/main/java/io/xpipe/app/terminal/TerminalLauncherManager.java","lineNumber":157,"sourceCode":"                }\n            }\n\n            if (!(e.getResult() instanceof TerminalLaunchResult.ResultSuccess)) {\n                throw new BeaconClientException(\"Invalid launch request state \" + request);\n            }\n\n            return ((TerminalLaunchResult.ResultSuccess) e.getResult()).getTargetScript();\n        }\n    }\n\n    public static List<String> externalExchange(DataStoreEntryRef<ShellStore> ref, List<String> arguments)\n            throws BeaconClientException, BeaconServerException {\n        var request = UUID.randomUUID();\n        ShellControl session;\n        try {\n            session = ref.getStore().standaloneControl();\n        } catch (Exception e) {\n            throw new BeaconServerException(e);\n        }\n\n        // These prepend scripts, not append\n        TerminalPromptManager.configurePromptScript(session);\n        ProcModuleProvider.get().withDefaultScripts(session);\n\n        ProcessControl control;\n        if (arguments.size() > 0) {\n            control = session.command(CommandBuilder.of().addAll(arguments));\n        } else {\n            control = session;\n        }\n\n        var config = new TerminalInitScriptConfig(ref.get().getName(), false, TerminalInitFunction.none());\n        submitAsync(request, control, config, null);\n        waitExchange(request);\n        var script = launchExchange(request);\n        try (var sc = LocalShell.getShell().start()) {","sourceCodeStart":139,"sourceCodeEnd":175,"githubUrl":"https://github.com/xpipe-io/xpipe/blob/d85ca821baa46092a320ebb13546d7240adb74f8/app/src/main/java/io/xpipe/app/terminal/TerminalLauncherManager.java#L139-L175","documentation":"A BeaconServerException wrapping any Exception thrown while creating the standalone shell control session for an external terminal launch in externalExchange. The message is just 'e'; the meaningful detail is in the cause. It indicates the connection/session to the target store could not be established.","triggerScenarios":"ref.getStore().standaloneControl() throwing — e.g. store connection failures, invalid credentials, unreachable host, or store configuration errors when opening the shell session.","commonSituations":"SSH host unreachable or refusing connections; wrong credentials in the store; connection provider (e.g. ssh, RDP) not installed; network change while opening the session.","solutions":["Inspect e.getCause() for the underlying connection error","Test the store connection independently (connection test in XPipe UI)","Verify host reachability, credentials, and that the required connection software is installed","Recreate or repair the store entry if its configuration is corrupt"],"exampleFix":"try {\n    var script = TerminalLauncherManager.externalExchange(ref);\n} catch (BeaconServerException e) {\n    logger.error(\"could not open shell session for external terminal\", e.getCause());\n}","handlingStrategy":"try-catch","validationCode":"// test store reachability before externalExchange\nif (!ref.getStore().isEnabled()) throw new IllegalStateException(\"store disabled\");","typeGuard":null,"tryCatchPattern":"try {\n    var result = TerminalLauncherManager.externalExchange(ref);\n} catch (BeaconServerException e) {\n    logger.error(\"session creation for external terminal failed\", e.getCause());\n}","preventionTips":["Run a connection test on the store before launching","Validate credentials and host reachability","Ensure required connection tools (ssh etc.) are installed"],"tags":["terminal","session","connection","wrapped-exception"],"backgroundTag":"connection-refused","analyzedSha":"d85ca821baa46092a320ebb13546d7240adb74f8","analyzedAt":"2026-09-06T14:30:08.251Z","contentChangedAt":"2026-09-06T14:30:08.251Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}