{"record":{"id":"09c2c0a0a9d74830","repo":"hasura/graphql-engine","slug":"cannot-write-seeds-directory-w","errorCode":null,"errorMessage":"cannot write seeds directory: %w","messagePattern":"cannot write seeds directory: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cli/commands/init.go","lineNumber":342,"sourceCode":"\t\t\tplugins = append(plugins, metadataVersion.NewV3MetadataVersion(o.EC, o.EC.MetadataDir))\n\t\t\tplugins = append(plugins, tables.New(o.EC, o.EC.MetadataDir))\n\t\t\tplugins = append(plugins, functions.New(o.EC, o.EC.MetadataDir))\n\t\t}\n\n\t\tfor _, plg := range plugins {\n\t\t\terr := plg.CreateFiles()\n\t\t\tif err != nil {\n\t\t\t\treturn errors.E(op, fmt.Errorf(\"cannot create metadata files: %w\", err))\n\t\t\t}\n\t\t}\n\t}\n\n\t// create seeds directory\n\to.EC.SeedsDirectory = filepath.Join(o.EC.ExecutionDirectory, cli.DefaultSeedsDirectory)\n\n\terr = os.MkdirAll(o.EC.SeedsDirectory, os.ModePerm)\n\tif err != nil {\n\t\treturn errors.E(op, fmt.Errorf(\"cannot write seeds directory: %w\", err))\n\t}\n\n\treturn nil\n}\n\nfunc (o *InitOptions) Run() error {\n\tvar op errors.Op = \"commands.InitOptions.Run\"\n\n\tcontext := &initCtx{\n\t\tec:      o.EC,\n\t\tinitOps: o,\n\t\tlogger:  o.EC.Logger,\n\t\terr:     nil,\n\t}\n\n\tconfigInitFSM := newInitFSM()\n\n\terr := configInitFSM.SendEvent(createProjectDirectory, context)","sourceCodeStart":324,"sourceCodeEnd":360,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/cli/commands/init.go#L324-L360","documentation":"os.MkdirAll failed for the seeds directory (<ExecutionDir>/seeds) at the end of `hasura init` file creation.","triggerScenarios":"Seeds directory cannot be created due to permissions, a conflicting file named 'seeds', or read-only filesystem.","commonSituations":"Same restricted-filesystem scenarios as other init mkdir errors; leftover file from earlier tooling at the seeds path.","solutions":["Verify no file named 'seeds' exists and the dir is writable","Fix disk/permission problems and re-run init","Init in a fresh writable directory"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if fi, err := os.Lstat(filepath.Join(dir, \"seeds\")); err == nil && !fi.IsDir() {\n    log.Fatal(\"'seeds' exists but is not a directory\")\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep seeds path collision-free","Verify writability of the project tree"],"tags":["hasura","cli","init","seeds","mkdir"],"backgroundTag":"directory-create-failed","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}