{"record":{"id":"c37800340ad530db","repo":"dagger/dagger","slug":"invalid-enum-member-q-for-s","errorCode":null,"errorMessage":"invalid enum member %q for %s","messagePattern":"invalid enum member %q for (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"core/enum.go","lineNumber":231,"sourceCode":"\tif len(e.TypeDef.Members) == 0 {\n\t\t// this is a fairly good indication that something wrong has happened internally\n\t\treturn nil, fmt.Errorf(\"enum %s has no members\", e.TypeName())\n\t}\n\tfor _, possible := range e.TypeDef.Members {\n\t\tmember := possible.Self()\n\t\tname := member.Name\n\t\tif e.Local && member.OriginalName != \"\" {\n\t\t\tname = member.OriginalName\n\t\t}\n\t\tif val == name {\n\t\t\treturn &ModuleEnum{\n\t\t\t\tTypeDef: e.TypeDef,\n\t\t\t\tName:    member.Name,\n\t\t\t}, nil\n\t\t}\n\t}\n\n\treturn nil, fmt.Errorf(\"invalid enum member %q for %s\", val, e.TypeName())\n}\n\nfunc (e *ModuleEnum) memberTypedef() *EnumMemberTypeDef {\n\tfor _, possible := range e.TypeDef.Members {\n\t\tif possible.Self().Name == e.Name {\n\t\t\treturn possible.Self()\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (e *ModuleEnum) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(e.Name)\n}\n","sourceCodeStart":213,"sourceCodeEnd":246,"githubUrl":"https://github.com/dagger/dagger/blob/82ba2681dbe30d3547a1dc50ea495900ab5b6047/core/enum.go#L213-L246","documentation":"ModuleEnum.Lookup iterated every member of the enum and none matched the provided value string, so it reports the value and the enum type name. This is the standard 'value is not a member of this enum' user-facing error, surfaced through DecodeInput when GraphQL/SDK inputs or results carry an unknown enum name.","triggerScenarios":"A query passes an enum literal (or an SDK result returns a string) that matches no member Name — and, for local enums, no member OriginalName either.","commonSituations":"Typo or wrong casing in the GraphQL query enum literal; SDK code using a stale member name after a rename; a client from a different SDK version enumerating members that no longer exist; using a dependency's enum value against a module that re-exported it with different names.","solutions":["Use exactly one of the enum's allowed values — check with `dagger query` introspection or `dagger functions` docs","Fix casing/spelling of the value (enum members are case-sensitive)","Regenerate the client SDK so its enum constants match the current schema","If a member was renamed, update call sites to the new name"],"exampleFix":"# before\nquery { alpineEnv { build(mode: \"RELEAS\") { ... } } }\n# after\nquery { alpineEnv { build(mode: \"RELEASE\") { ... } } }","handlingStrategy":"validation","validationCode":"// GraphQL / client-side pre-check against introspected members\nconst MODES = [\"FAST\", \"SLOW\"]\nif (!MODES.includes(mode)) {\n  throw new Error(`${mode} is not a member of Mode; valid: ${MODES.join(\", \")}`)\n}","typeGuard":"function isValidMode(v: string): v is \"FAST\" | \"SLOW\" {\n  return v === \"FAST\" || v === \"SLOW\"\n}","tryCatchPattern":"try {\n  await query(mode)\n} catch (e) {\n  if (/invalid enum member/.test(String(e))) {\n    console.error(`Bad enum value; introspect the schema for allowed members of ${enumName}`)\n  }\n  throw e\n}","preventionTips":["Copy enum literals from introspection or generated constants, never by hand","Regenerate client SDKs after enum member renames","Enum members are case-sensitive — match exactly","Check `dagger query` introspection for the authoritative member list"],"tags":["enum","validation","graphql","dagger"],"backgroundTag":"invalid-enum-value","analyzedSha":"82ba2681dbe30d3547a1dc50ea495900ab5b6047","analyzedAt":"2026-09-05T07:21:37.930Z","contentChangedAt":"2026-09-05T07:21:37.930Z","schemaVersion":2},"datasetVersion":"2026-09-12T12:17:11.808Z"}