{"record":{"id":"1c035e1ae5e08e2c","repo":"hasura/graphql-engine","slug":"config-v-is-not-supported-1c035e","errorCode":null,"errorMessage":"config %v is not supported","messagePattern":"config (.+?) is not supported","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cli/pkg/migrate/project_migrate.go","lineNumber":111,"sourceCode":"\tec.Stdout = io.Discard\n\n\terr := ec.Prepare()\n\tif err != nil {\n\t\treturn nil, errors.E(op, err)\n\t}\n\n\tp.ec = ec\n\tfor _, opt := range opts {\n\t\topt(p)\n\t}\n\n\terr = ec.Validate()\n\tif err != nil {\n\t\treturn nil, errors.E(op, err)\n\t}\n\n\tif ec.Config.Version <= cli.V1 {\n\t\treturn nil, errors.E(op, fmt.Errorf(\"config %v is not supported\", ec.Config.Version))\n\t}\n\n\treturn p, nil\n}\n\ntype ProjectMigrateOption func(*ProjectMigrate)\n\nfunc WithEndpoint(endpoint string) ProjectMigrateOption {\n\treturn func(m *ProjectMigrate) {\n\t\tm.ec.Viper.Set(\"endpoint\", endpoint)\n\t}\n}\n\nfunc WithAdminSecret(adminSecret string) ProjectMigrateOption {\n\treturn func(m *ProjectMigrate) {\n\t\tm.ec.Viper.Set(\"admin_secret\", adminSecret)\n\t}\n}","sourceCodeStart":93,"sourceCodeEnd":129,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/cli/pkg/migrate/project_migrate.go#L93-L129","documentation":"NewProjectMigrate refuses to construct a ProjectMigrate for projects whose config version is <= cli.V1. Migration commands in the modern CLI only work with config version 2/3 projects; this guard exists so legacy v1 projects fail fast with a clear message instead of behaving incorrectly. The tests reference SkipExecution for both config v2 and v3, confirming those are the supported versions.","triggerScenarios":"Calling NewProjectMigrate (any migrate command: apply, create, status, squash) when config.yaml contains `version: 1` or an unset/zero version. The same guard pattern as the metadata package, applied to the migrate subsystem.","commonSituations":"Running `hasura migrate apply` in a v1-era project with a v2+ CLI; upgrading the CLI but not the project config; CI pipelines pinned to old config files; collaborators on old branches hitting this after pulling new tooling.","solutions":["Bump config.yaml to `version: 2` or `version: 3` following the v2 config format changes","Migrate the project properly: create a new project with the new CLI and copy migrations/metadata directories across","Alternatively install the hasura-cli v1 binary to keep working with the legacy project","Verify you're running commands from the directory containing the updated config.yaml"],"exampleFix":"# before (config.yaml)\nversion: 1\n# after\nversion: 2","handlingStrategy":"validation","validationCode":"cfg, _ := util.ParseConfig(\"config.yaml\")\nif cfg.Version <= 1 {\n    return fmt.Errorf(\"upgrade config.yaml to version 2 or 3 before running migrate commands\")\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Upgrade config.yaml when moving a project to the v2 CLI","Assert config version in CI before migrate apply","Keep the legacy v1 binary installed if you must maintain old projects"],"tags":["config","version","migrations","hasura-cli","project-setup"],"backgroundTag":"unsupported-config-version","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}