BoundaryML/baml · error

failed to get is url: %w

Error message

failed to get is url: %w

What it means

Wraps any error from the FFI call to the runtime's `is_url` method on a media object. IsUrl() asks the BAML runtime whether the media content is a URL; if that remote method call fails, the error is wrapped with this message and the cause preserved via %w.

Source

Thrown at engine/language_client_go/pkg/rawobjects_media.go:104

		return nil, fmt.Errorf("failed to get mime type: %w", err)
	}

	if result == nil {
		return nil, nil
	}

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

	return &as_mime_type, nil
}

func (m *mediaHolder) IsUrl() (bool, error) {
	result, err := raw_objects.CallMethod(m, "is_url", nil)
	if err != nil {
		return false, fmt.Errorf("failed to get is url: %w", err)
	}

	return result.(bool), nil
}

func (m *mediaHolder) IsBase64() (bool, error) {
	result, err := raw_objects.CallMethod(m, "is_base64", nil)
	if err != nil {
		return false, fmt.Errorf("failed to get is base64: %w", err)
	}

	return result.(bool), nil
}

func (m *mediaHolder) AsUrl() (*string, error) {
	result, err := raw_objects.CallMethod(m, "as_url", nil)
	if err != nil {
		return nil, fmt.Errorf("failed to get as url: %w", err)

View on GitHub (pinned to bd85ce9dee)

Solutions

  1. Inspect errors.Unwrap(err) for the underlying FFI failure
  2. Recreate the media object from a fresh BAML response instead of a stale handle
  3. Align Go module and native runtime versions
  4. Check that the object was constructed through the public BAML API (not manually)
Defensive patterns

Strategy: try-catch

Validate before calling

if media == nil { return fmt.Errorf("media object is nil") }

Try / catch

isUrl, err := media.IsUrl()
if err != nil {
    log.Printf("is_url failed: %v", errors.Unwrap(err))
    isUrl = false
}

Prevention

When it happens

Trigger: Calling IsUrl() on an Image/Audio/PDF/Video whose raw object handle is invalid, freed, or whose runtime `is_url` invocation errors.

Common situations: Reusing a media object after its backing response was garbage-collected or released; Go client / native runtime version skew; runtime-side failure converting the stored media.

Understand the failure class

Background: "invalid response format", "malformed payload", "missing data field": when an API returns 200 but the response shape is wrong — this error's family across 23 libraries.

Related errors


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