t8y2/dbx · error

synonym name is required

Error message

synonym name is required

What it means

Returned by server.resolveCatalogSynonym in the xugu driver when the synonym name argument is blank after trimming (schema defaults to the current schema). Synonym DDL export needs a concrete object name; the request is rejected before the exact-case/case-insensitive catalog resolution runs.

Source

Thrown at agents/drivers/xugu/main.go:3616

		"editable":    false,
	}, nil
}

// resolveCatalogSynonym applies exact matching before a case-insensitive
// fallback. This preserves quoted identifiers and refuses an ambiguous lookup
// instead of silently generating DDL for a different alias.
func (s *server) resolveCatalogSynonym(schema, name string) (xuguCatalogSynonym, error) {
	schema = strings.TrimSpace(schema)
	name = strings.TrimSpace(name)
	if schema == "" {
		current, err := s.currentSchema()
		if err != nil {
			return xuguCatalogSynonym{}, err
		}
		schema = current
	}
	if name == "" {
		return xuguCatalogSynonym{}, errors.New("synonym name is required")
	}

	candidates, err := s.catalogSynonymCandidates(xuguCatalogSynonymQuery(schema, name, false))
	if err != nil {
		return xuguCatalogSynonym{}, err
	}
	if len(candidates) == 0 {
		candidates, err = s.catalogSynonymCandidates(xuguCatalogSynonymQuery(schema, name, true))
		if err != nil {
			return xuguCatalogSynonym{}, err
		}
	}
	return selectXuguCatalogSynonym(schema, name, candidates)
}

func xuguCatalogSynonymQuery(schema, name string, caseInsensitive bool) string {
	schemaExpr := quoteStringLiteral(schema)
	nameExpr := quoteStringLiteral(name)

View on GitHub (pinned to c0390bff16)

Solutions

  1. Supply a non-empty synonym name
  2. Validate the name before calling the resolution API
  3. Ensure the synonym identifier is present in the request

Example fix

// before
resolveCatalogSynonym(schema, "")
// after
if synName == "" { return errors.New("synonym name is required") }
resolveCatalogSynonym(schema, synName)
Defensive patterns

Strategy: validation

Validate before calling

if strings.TrimSpace(synonymName) == "" {
    return fmt.Errorf("synonym name is required")
}

Type guard

func hasSynonymName(name string) bool {
    return strings.TrimSpace(name) != ""
}

Try / catch

syn, err := s.resolveCatalogSynonym(schema, name)
if err != nil {
    if err.Error() == "synonym name is required" {
        return xuguCatalogSynonym{}, fmt.Errorf("invalid request: %w", err)
    }
    return xuguCatalogSynonym{}, err
}

Prevention

When it happens

Trigger: Calling the synonym catalog resolution path with an empty name string; the schema may default to the current schema but the name must be provided.

Common situations: Tooling that lists synonyms without filtering by a specific name, or requests missing the synonym identifier field.

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/f579e361d6ab59cb. Report an issue: GitHub.