diff --git a/api/core/sandbox/bash/bash_tool.py b/api/core/sandbox/bash/bash_tool.py index 0b4e3ec70a..2210ed8257 100644 --- a/api/core/sandbox/bash/bash_tool.py +++ b/api/core/sandbox/bash/bash_tool.py @@ -91,7 +91,11 @@ class SandboxBashTool(Tool): ) -> Generator[ToolInvokeMessage, None, None]: command = tool_parameters.get("bash", "") if not command: - yield self.create_text_message("Error: No command provided") + sandbox_debug("bash_tool", "parameters", tool_parameters) + yield self.create_text_message( + 'Error: No command provided. The "bash" parameter is required and must contain ' + 'the shell command to execute. Example: {"bash": "ls -la"}' + ) return try: diff --git a/api/core/virtual_environment/providers/ssh_sandbox.py b/api/core/virtual_environment/providers/ssh_sandbox.py index c8e81645d9..a4c63f6110 100644 --- a/api/core/virtual_environment/providers/ssh_sandbox.py +++ b/api/core/virtual_environment/providers/ssh_sandbox.py @@ -105,6 +105,8 @@ class SSHSandboxEnvironment(VirtualEnvironment): self._run_command(client, f"mkdir -p {shlex.quote(working_path)}") arch_stdout = self._run_command(client, "uname -m") os_stdout = self._run_command(client, "uname -s") + except SandboxConfigValidationError as e: + raise ValueError(f"SSH configuration validation failed, please check sandbox provider: {e}") from e except Exception as e: raise VirtualEnvironmentLaunchFailedError(f"Failed to construct SSH environment: {e}") from e