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

  1. Read the inner error from buildSessionCreateRequest in the %w chain and fix the named config field
  2. Reset tenant overrides to the provider defaults to isolate the offending field
  3. Verify Config.Type and deps.Client.Provider() agree, since the request is built for the client's provider
  4. 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

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


AI-assisted analysis of Tencent/WeKnora@988cbb0330 (2026-09-02). Data as JSON: /api/errors/c55bb4bd826f4750. Report an issue: GitHub.