{"record":{"id":"6586354a9483fe03","repo":"infiniflow/ragflow","slug":"failed-to-initialize-sandbox-provider-provider-t","errorCode":null,"errorMessage":"Failed to initialize sandbox provider: {provider_type}. Config keys: {list(config.keys())}","messagePattern":"Failed to initialize sandbox provider: (.+?)\\. Config keys: (.+?)","errorType":"exception","errorClass":"SandboxProviderConfigError","httpStatus":null,"severity":"critical","filePath":"agent/sandbox/client.py","lineNumber":105,"sourceCode":"            \"e2b\": E2BProvider,\n            \"local\": LocalProvider,\n            \"ssh\": SSHProvider,\n            \"tenki\": TenkiProvider,\n            \"ucloud_agent_sandbox\": UCloudAgentSandboxProvider,\n        }\n\n        if provider_type not in provider_classes:\n            logger.error(f\"Unknown provider type: {provider_type}\")\n            return\n\n        provider_class = provider_classes[provider_type]\n        provider = provider_class()\n\n        # Initialize the provider\n        if not provider.initialize(config):\n            message = f\"Failed to initialize sandbox provider: {provider_type}. Config keys: {list(config.keys())}\"\n            if provider_type in {\"local\", \"ssh\", \"tenki\", \"ucloud_agent_sandbox\"}:\n                raise SandboxProviderConfigError(message)\n            logger.error(message)\n            return\n\n        # Set the active provider\n        _provider_manager.set_provider(provider_type, provider)\n        logger.info(f\"Sandbox provider '{provider_type}' initialized successfully\")\n\n    except SandboxProviderConfigError:\n        raise\n    except Exception as e:\n        logger.error(f\"Failed to load sandbox provider from settings: {e}\")\n        import traceback\n\n        traceback.print_exc()\n\n\ndef _load_provider_config_from_settings(provider_type: str) -> Dict[str, Any]:\n    provider_config_settings = SystemSettingsService.get_by_name(f\"sandbox.{provider_type}\")","sourceCodeStart":87,"sourceCodeEnd":123,"githubUrl":"https://github.com/infiniflow/ragflow/blob/554fb1133ac3861732235ad9c377eb5e0a770665/agent/sandbox/client.py#L87-L123","documentation":"Raised during sandbox provider bootstrap in agent/sandbox/client.py. The provider class for the configured type was found, but its initialize(config) returned false — meaning the provider rejected its own configuration. For provider types 'local', 'ssh', 'tenki', and 'ucloud_agent_sandbox' this raises SandboxProviderConfigError; other provider types only log the error and return None, leaving the sandbox unconfigured.","triggerScenarios":"Configuring a local/ssh/tenki/ucloud_agent_sandbox provider with bad settings: missing host/port/credentials for ssh, an unreachable or mis-permissioned working directory for local, invalid tenant/region keys for cloud providers. The message includes the config key names (not values) to aid diagnosis.","commonSituations":"Admin panel sandbox settings half-configured after switching providers; SSH provider pointing at a host that's down or wrong key path; Docker deployments missing mounts the local provider requires; version upgrades renaming config keys so initialize fails.","solutions":["Open the admin panel sandbox settings and complete/fix the configuration for the selected provider type; check the provider's own initialize() for which keys it validates.","For the ssh provider, verify host, port, user, and key/password are set and the host is reachable.","Check the preceding log output — provider.initialize usually logs the specific reason it returned false.","Switch to the 'local' provider temporarily to isolate provider-config issues from code issues."],"exampleFix":"# before (settings)\nsandbox: {provider_type: \"ssh\", config: {host: \"\"}}\n\n# after\nsandbox: {provider_type: \"ssh\", config: {host: \"10.0.0.5\", \"port\": 22, \"user\": \"runner\", \"key_path\": \"/keys/id_rsa\"}}","handlingStrategy":"try-catch","validationCode":"from agent.sandbox.client import get_provider_manager\n\npm = get_provider_manager()\nif not pm.is_configured():\n    raise RuntimeError('Sandbox not configured; fix provider settings before running code components')","typeGuard":null,"tryCatchPattern":"try:\n    init_sandbox_provider(settings)\nexcept SandboxProviderConfigError as e:\n    # surface to admin UI / fail deployment; include config key names from the message\n    raise","preventionTips":["Validate sandbox settings immediately after saving in the admin panel, not at first code execution.","For ssh providers, verify reachability and credentials as part of deployment checks.","Watch logs for 'Failed to initialize sandbox provider' with non-raising provider types — they silently leave the sandbox unconfigured."],"tags":["sandbox","configuration","provider","bootstrap"],"backgroundTag":null,"analyzedSha":"554fb1133ac3861732235ad9c377eb5e0a770665","analyzedAt":"2026-08-15T09:20:16.380Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}