{"record":{"id":"9b8d32c866c0f4aa","repo":"hasura/graphql-engine","slug":"framework-s-is-not-found","errorCode":null,"errorMessage":"framework %s is not found","messagePattern":"framework (.+?) is not found","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cli/commands/actions_use_codegen.go","lineNumber":152,"sourceCode":"\n\t\tsort.Strings(frameworkList)\n\n\t\tnewCodegenExecutionConfig.Framework, err = util.GetSelectPrompt(\n\t\t\t\"Choose a codegen framework to use\",\n\t\t\tframeworkList,\n\t\t)\n\t\tif err != nil {\n\t\t\treturn errors.E(op, fmt.Errorf(\"error in selecting framework: %w\", err))\n\t\t}\n\t} else {\n\t\tfor _, f := range allFrameworks {\n\t\t\tif o.framework == f.Name {\n\t\t\t\tnewCodegenExecutionConfig.Framework = o.framework\n\t\t\t}\n\t\t}\n\n\t\tif newCodegenExecutionConfig.Framework == \"\" {\n\t\t\treturn errors.E(op, fmt.Errorf(\"framework %s is not found\", o.framework))\n\t\t}\n\t}\n\n\thasStarterKit := false\n\n\tfor _, f := range allFrameworks {\n\t\tif f.Name == newCodegenExecutionConfig.Framework && f.HasStarterKit {\n\t\t\thasStarterKit = true\n\t\t}\n\t}\n\n\t// if with-starter-kit flag is set and the same is not available for the framework, return error\n\tif o.withStarterKit && !hasStarterKit {\n\t\treturn errors.E(\n\t\t\top,\n\t\t\tfmt.Errorf(\n\t\t\t\t\"starter kit is not available for framework %s\",\n\t\t\t\tnewCodegenExecutionConfig.Framework,","sourceCodeStart":134,"sourceCodeEnd":170,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/cli/commands/actions_use_codegen.go#L134-L170","documentation":"Validation error: `hasura actions use-codegen --framework X` was given a framework name that does not match any framework in the manifest fetched from the codegen-assets repo, so newCodegenExecutionConfig.Framework stayed empty and the command aborts.","triggerScenarios":"Passing a misspelled or nonexistent framework name, e.g. --framework node-express when the manifest lists nodejs-express; or a stale clone missing frameworks that newer versions advertise.","commonSituations":"Typos in CI scripts, copying framework names from outdated docs, or name changes between codegen-assets versions.","solutions":["Run without --framework to see the interactive list of valid names, or check the codegen-assets repo manifest.","Correct the flag to the exact framework name (e.g. nodejs-express, typescript-express).","Refresh the codegen-assets clone if you expect a framework that isn't listed."],"exampleFix":"// before\nhasura actions use-codegen --framework node-express\n// after\nhasura actions use-codegen --framework nodejs-express","handlingStrategy":"validation","validationCode":"# list valid frameworks by running interactively once, then pin:\nhasura actions use-codegen  # choose from prompt to learn exact names","typeGuard":null,"tryCatchPattern":"Catch the 'framework %s is not found' message, print the valid list (from the clone's manifest), and re-run with a correct name.","preventionTips":["Pin exact framework names in CI configs.","Refresh the clone if expected frameworks are missing.","Copy names from the official codegen-assets repo."],"tags":["validation","framework","hasura-cli","cli-flags"],"backgroundTag":"invalid-cli-argument-value","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}