t8y2/dbx · error

parent_schema is required for Xugu type members

Error message

parent_schema is required for Xugu type members

What it means

Raised by completionAssistantSearchTypeMembers after the request-shape check passes: it needs a schema in which to resolve the parent type (via xuguTypeDefinition) but neither parent_schema nor schema was provided. Xugu type names can be schema-qualified, so the schema is mandatory to locate the type definition.

Source

Thrown at agents/drivers/xugu/type_members.go:173

	case "package":
		return s.completionAssistantSearchPackageMembers(request)
	}
	// Package members shipped before type members. Keep that request shape
	// working for already-running desktop clients that do not send parent_type.
	return s.completionAssistantSearchPackageMembers(request)
}

func (s *server) completionAssistantSearchTypeMembers(request completionAssistantRequest) (completionAssistantResponse, error) {
	parentName := strings.TrimSpace(request.ParentName)
	if parentName == "" || !xuguCompletionRequestsTypeMembers(request.ObjectKinds) {
		return completionAssistantResponse{}, errors.New("completion assistant search is not supported for this request")
	}
	parentSchema := strings.TrimSpace(request.ParentSchema)
	if parentSchema == "" {
		parentSchema = strings.TrimSpace(request.Schema)
	}
	if parentSchema == "" {
		return completionAssistantResponse{}, errors.New("parent_schema is required for Xugu type members")
	}

	typeDefinition, err := s.xuguTypeDefinition(parentSchema, parentName)
	if err != nil {
		return completionAssistantResponse{}, err
	}
	if typeDefinition.Kind != xuguObjectTypeKind {
		return completionAssistantResponse{Candidates: []completionAssistantCandidate{}, FallbackUsed: false}, nil
	}

	limit := request.MaxResults
	if limit <= 0 {
		limit = 100
	}
	if limit > 1000 {
		limit = 1000
	}

View on GitHub (pinned to c0390bff16)

Solutions

  1. Set parent_schema in the completion request to the schema owning the parent type
  2. Alternatively set schema on the request so it is used as the parent schema fallback
  3. Always send fully qualified type names (schema.type) where the API allows it

Example fix

// before
req := completionAssistantRequest{ParentName: "my_type"}
// after
req := completionAssistantRequest{ParentName: "my_type", ParentSchema: "my_schema"}
Defensive patterns

Strategy: validation

Validate before calling

if strings.TrimSpace(req.ParentSchema) == "" && strings.TrimSpace(req.Schema) == "" {
    return errors.New("parent_schema (or schema) is required for Xugu type member completion")
}

Type guard

func hasParentSchema(r completionAssistantRequest) bool {
    return strings.TrimSpace(r.ParentSchema) != "" || strings.TrimSpace(r.Schema) != ""
}

Try / catch

resp, err := s.completionAssistantSearchTypeMembers(req)
if err != nil && strings.Contains(err.Error(), "parent_schema is required") {
    return nil, fmt.Errorf("client bug: send parent_schema for %q", req.ParentName)
}

Prevention

When it happens

Trigger: completionAssistantSearchTypeMembers is called with ParentName set and valid ObjectKinds, but both request.ParentSchema and request.Schema are empty after trimming whitespace.

Common situations: Client omits schema because it assumed a default schema; parent_name given unqualified with no schema context; serialization drops empty-string fields.

Understand the failure class

Background: Missing required parameter errors: what 'X is required' and 'the required X param is missing' mean, and how to fix them — this error's family across 27 libraries.

Related errors


AI-assisted analysis of t8y2/dbx@c0390bff16 (2026-09-05). Data as JSON: /api/errors/39c782977e2a1072. Report an issue: GitHub.