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

  1. Check the source definition in metadata (sources[].kind) and fix typos to a supported kind (e.g. postgres).
  2. Upgrade the CLI to a version that supports the source kind you are using (check release notes for seed support of that kind).
  3. Remove or skip seeding for that source and seed it with a tool native to that database.
  4. 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

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


AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28). Data as JSON: /api/errors/836da10c44ff89ef. Report an issue: GitHub.