hasura/graphql-engine · error
cannot create metadata files: %w
Error message
cannot create metadata files: %w
What it means
During init of v2+ projects, one of the metadata plugins (metadata files, functions.New, etc.) failed in plg.CreateFiles() while writing default metadata files into the metadata directory.
Source
Thrown at cli/commands/init.go:332
plugins = append(plugins, querycollections.New(o.EC, o.EC.MetadataDir))
plugins = append(plugins, allowlist.New(o.EC, o.EC.MetadataDir))
plugins = append(plugins, remoteschemas.New(o.EC, o.EC.MetadataDir))
plugins = append(plugins, actions.New(o.EC, o.EC.MetadataDir))
plugins = append(plugins, crontriggers.New(o.EC, o.EC.MetadataDir))
if config.Version == cli.V3 {
plugins = append(plugins, metadataVersion.New(o.EC, o.EC.MetadataDir))
plugins = append(plugins, sources.New(o.EC, o.EC.MetadataDir))
} else {
plugins = append(plugins, metadataVersion.NewV3MetadataVersion(o.EC, o.EC.MetadataDir))
plugins = append(plugins, tables.New(o.EC, o.EC.MetadataDir))
plugins = append(plugins, functions.New(o.EC, o.EC.MetadataDir))
}
for _, plg := range plugins {
err := plg.CreateFiles()
if err != nil {
return errors.E(op, fmt.Errorf("cannot create metadata files: %w", err))
}
}
}
// create seeds directory
o.EC.SeedsDirectory = filepath.Join(o.EC.ExecutionDirectory, cli.DefaultSeedsDirectory)
err = os.MkdirAll(o.EC.SeedsDirectory, os.ModePerm)
if err != nil {
return errors.E(op, fmt.Errorf("cannot write seeds directory: %w", err))
}
return nil
}
func (o *InitOptions) Run() error {
var op errors.Op = "commands.InitOptions.Run"
View on GitHub (pinned to 724551b9ae)
Solutions
- Check the wrapped error for which plugin/file failed and fix the filesystem issue (space/permissions)
- Clean the partially initialised project and re-run `hasura init`
- Retry with verbose logging if a plugin content error is suspected
Defensive patterns
Strategy: try-catch
Validate before calling
if err := checkDiskAndPerms(metadataDir); err != nil { log.Fatal(err) } Try / catch
if err := initCmd.Run(); err != nil {
if strings.Contains(err.Error(), "cannot create metadata files") {
// inspect wrapped plugin error; usually FS permission or space
}
} Prevention
- Run init with adequate disk space
- Clean partial init directories before retry
When it happens
Trigger: Metadata plugin cannot write its files: disk full, permission issue on the metadata dir, or plugin serialization failure producing invalid file content.
Common situations: Same filesystem issues as other init write failures; interrupted init leaving half-written metadata; disk quota in CI containers.
Related errors
- cannot write metadata directory: %w
- prompt exited: %w
- error getting current working directory: %w
- can't initialise hasura project in filesystem root: %w
- directory '%s' already exists
AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28).
Data as JSON: /api/errors/a6574fdb19503566.
Report an issue: GitHub.