hasura/graphql-engine · error
database %s of kind %s is not supported
Error message
database %s of kind %s is not supported
What it means
ApplySeedsToDatabase builds database-specific request bodies via a switch on the source kind; only the known source kinds (e.g. postgres and other supported kinds) are handled. Any other kind falls into the default branch and is rejected with this error naming the offending database and its kind.
Source
Thrown at cli/seed/apply.go:137
},
}
args = append(args, request)
}
case hasura.SourceKindCitus:
for _, sql := range sqlAsBytes {
request := hasura.RequestBody{
Type: "citus_run_sql",
Args: hasura.CitusRunSQLInput{
SQL: string(sql),
Source: source.Name,
},
}
args = append(args, request)
}
default:
return errors.E(
op,
fmt.Errorf("database %s of kind %s is not supported", source.Name, source.Kind),
)
}
if len(args) == 0 {
return errors.E(op, fmt.Errorf("no SQL files found in %s", seedsDirectory))
}
_, err := d.SendBulk(args)
if err != nil {
return errors.E(op, err)
}
return nil
}
View on GitHub (pinned to 724551b9ae)
Solutions
- Check the source definition in metadata (sources[].kind) and fix typos to a supported kind (e.g. postgres).
- Upgrade the CLI to a version that supports the source kind you are using (check release notes for seed support of that kind).
- Remove or skip seeding for that source and seed it with a tool native to that database.
- If the source is experimental, disable it in config for the seed apply run.
Example fix
# before
# metadata.yaml
sources:
- name: mydb
kind: postgress # typo -> database mydb of kind postgress is not supported
# after
sources:
- name: mydb
kind: postgres Defensive patterns
Strategy: type-guard
Validate before calling
var seedableKinds = map[string]bool{"postgres": true /* add supported kinds for your CLI version */}
for _, src := range metadata.Sources {
if !seedableKinds[src.Kind] {
continue // skip instead of failing the whole apply
}
ApplyOnSource(src, ...)
} Type guard
func isSeedableSource(kind string) bool {
switch kind {
case "postgres":
return true
default:
return false
}
} Try / catch
if err := seed.ApplyOnSource(src, ...); err != nil && strings.Contains(err.Error(), "is not supported") {
// skip this source, log, continue with others
} Prevention
- Keep CLI and server versions in lockstep; upgrade the CLI before adding new source kinds.
- Validate metadata.yaml source kinds in CI with a schema check.
- Seed non-supported databases with their native tooling instead of the CLI.
When it happens
Trigger: Calling ApplyOnSource/ApplySeedsToDatabase for a source whose Kind string is not one of the supported kinds — e.g. a newly introduced or custom source kind, or a misspelled kind in the metadata (kind: postgress, kind: mssql before support, etc.).
Common situations: Upgrading the CLI/metadata to include a source kind this CLI version's seed code does not implement yet (version skew between server and CLI), or hand-editing metadata.yaml with a typo in the source kind.
Related errors
- cue extraction error: %w
- creating metadata file %s failed: %w
- cannot export %s from metadata: %w
- cannot build %s from project: %w
- getting list of seed files to move: %w
AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28).
Data as JSON: /api/errors/836da10c44ff89ef.
Report an issue: GitHub.