BoundaryML/baml · error

failed to get body: %w

Error message

failed to get body: %w

What it means

httpRequest.Body() invokes the runtime 'body' method via the raw-objects bridge and expects an HTTPBody implementation back. 'failed to get body: %w' means the bridge call failed — the runtime could not produce a body object for this request.

Source

Thrown at engine/language_client_go/pkg/rawobjects_http_request.go:86

func (h *httpRequest) Headers() (map[string]string, error) {
	result, err := raw_objects.CallMethod(h, "headers", nil)
	if err != nil {
		return nil, fmt.Errorf("failed to get headers: %w", err)
	}

	headers, ok := result.(map[string]string)
	if !ok {
		return nil, fmt.Errorf("unexpected type for headers: %T", result)
	}

	return headers, nil
}

func (h *httpRequest) Body() (HTTPBody, error) {
	result, err := raw_objects.CallMethod(h, "body", nil)
	if err != nil {
		return nil, fmt.Errorf("failed to get body: %w", err)
	}

	body, ok := result.(HTTPBody)
	if !ok {
		return nil, fmt.Errorf("unexpected type for body: %T", result)
	}

	return body, nil
}

View on GitHub (pinned to bd85ce9dee)

Solutions

  1. Inspect the wrapped cause (%w) for the runtime-side error
  2. Access Body() once, before other code consumes the request stream
  3. Confirm the runtime provides a 'body' object for this request type
  4. Re-dispatch the request to get a fresh body
Defensive patterns

Strategy: try-catch

Validate before calling

if req == nil { return errors.New("request unavailable") }

Type guard

func (h *httpRequest) hasBody() bool { return h != nil && h.RawObject != nil }

Try / catch

body, err := req.Body()
if err != nil {
    return fmt.Errorf("request body unavailable: %w", err)
}

Prevention

When it happens

Trigger: Calling Body() on an invalid/detached request, or when the runtime 'body' method raises (e.g. streaming body unavailable, body already consumed).

Common situations: Accessing a request body after the handler consumed it; requests constructed without bodies in older runtime versions; client/runtime version drift.

Related errors


AI-assisted analysis of BoundaryML/baml@bd85ce9dee (2026-09-12). Data as JSON: /api/errors/eca00fcd91f1e05a. Report an issue: GitHub.