t8y2/dbx · error

parent_schema is required for Xugu package members

Error message

parent_schema is required for Xugu package members

What it means

This error is returned by completionAssistantSearchPackageMembers when neither ParentSchema nor Schema is provided. The driver needs a schema to look up the package specification (xuguPackageSpec) for member completion.

Source

Thrown at agents/drivers/xugu/package_members.go:47

type xuguPackageMember struct {
	Name       string
	Kind       string
	Signature  string
	ReturnType string
}

func (s *server) completionAssistantSearchPackageMembers(request completionAssistantRequest) (completionAssistantResponse, error) {
	parentName := strings.TrimSpace(request.ParentName)
	if parentName == "" || !xuguCompletionRequestsRoutines(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 package members")
	}

	spec, err := s.xuguPackageSpec(parentSchema, parentName)
	if err != nil {
		return completionAssistantResponse{}, err
	}
	members := parseXuguPackageMembers(spec)
	allowedKinds := xuguCompletionRoutineKinds(request.ObjectKinds)
	filtered := make([]xuguPackageMember, 0, len(members))
	for _, member := range members {
		if !allowedKinds[member.Kind] || !xuguCompletionNameMatches(member.Name, request) {
			continue
		}
		filtered = append(filtered, member)
	}

	limit := request.MaxResults
	if limit <= 0 {

View on GitHub (pinned to c0390bff16)

Solutions

  1. Set ParentSchema (or fall back to Schema) in the completion request
  2. Populate the request schema from the session's current database/schema before dispatching
  3. Have the client always send schema context for package member searches

Example fix

// before
req := completionAssistantRequest{ParentName: "MYPKG"} // no schema
// after
req := completionAssistantRequest{ParentName: "MYPKG", ParentSchema: currentSchema}
searchPackageMembers(req)
Defensive patterns

Strategy: validation

Validate before calling

schema := strings.TrimSpace(req.ParentSchema)
if schema == "" {
    schema = strings.TrimSpace(req.Schema)
}
if schema == "" {
    schema = session.CurrentSchema // fallback before dispatch
}

Type guard

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

Try / catch

if !hasPackageSchema(request) {
    request.ParentSchema = currentSchema
}
resp, err := s.completionAssistantSearchPackageMembers(request)
if err != nil {
    return completionAssistantResponse{}, err
}

Prevention

When it happens

Trigger: Calling package member completion with an empty ParentName-adjacent schema: both request.ParentSchema and request.Schema are empty or whitespace.

Common situations: Completion clients omitting schema context because the connection's current schema wasn't propagated into the request payload.

Understand the failure class

Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.

Related errors


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