Tencent/WeKnora · error
session bound manager: %w
Error message
session bound manager: %w
What it means
After provider defaults are applied, the manager builds the neutral create request via buildSessionCreateRequest. If that builder fails (invalid provider/template/TTL combination in config), the constructor aborts with 'session bound manager' wrapping the builder's error.
Source
Thrown at internal/sandbox/session_manager.go:162
// Apply the provider's tuning defaults so downstream code reads only
// non-zero TTL / timeout fields. Endpoint defaults are deliberately not
// applied here: this constructor also serves named configs, which must be
// told what they are missing rather than handed a built-in localhost value.
switch provider {
case SandboxTypeCube:
applyCubeRuntimeDefaults(cfg)
case SandboxTypeE2B:
applyE2BRuntimeDefaults(cfg)
case SandboxTypeDocker:
applyDockerRuntimeDefaults(cfg)
}
// Build the provider-specific neutral create request using the
// provider's own template and TTL fields.
createRequest, err := buildSessionCreateRequest(provider, cfg)
if err != nil {
return nil, fmt.Errorf("session bound manager: %w", err)
}
// An empty template for the selected provider means the deployment is
// misconfigured. Fail early so operators get a clear message instead of
// a remote API error at the first sandbox allocation.
if strings.TrimSpace(createRequest.TemplateID) == "" {
return nil, fmt.Errorf(
"sandbox: %s template ID is required but not configured",
provider,
)
}
client := wrapLangfuseRemoteClient(deps.Client)
lifecycle, err := newRemoteSessionLifecycle(
client,
deps.Store,
deps.Checker,
createRequest,View on GitHub (pinned to 988cbb0330)
Solutions
- Read the inner error from buildSessionCreateRequest in the %w chain and fix the named config field
- Reset tenant overrides to the provider defaults to isolate the offending field
- Verify Config.Type and deps.Client.Provider() agree, since the request is built for the client's provider
- Check the version's requirements for buildSessionCreateRequest inputs
Defensive patterns
Strategy: validation
Try / catch
mgr, err := sandbox.NewSessionBoundManager(deps)
if err != nil && strings.Contains(err.Error(), "session bound manager") {
return nil, fmt.Errorf("create-request build failed, check provider config: %w", err)
} Prevention
- Keep Config.Type and Client.Provider() consistent
- Test manager construction for each provider in CI
- Avoid partial tenant overrides; start from provider defaults
When it happens
Trigger: buildSessionCreateRequest returns an error for the resolved provider — e.g. invalid TTL values or provider-incompatible config fields after defaults were applied.
Common situations: Config fields valid in isolation but rejected for the specific provider; tenant-supplied overrides producing invalid request parameters; upgrade changing buildSessionCreateRequest requirements.
Related errors
- invalid sandbox type
- timeout cannot be negative
- memory limit cannot be negative
- CPU limit cannot be negative
- URL is required for HTTP Streamable transport
AI-assisted analysis of Tencent/WeKnora@988cbb0330 (2026-09-02).
Data as JSON: /api/errors/c55bb4bd826f4750.
Report an issue: GitHub.