{"record":{"id":"78e19440142fe6c1","repo":"github/github-mcp-server","slug":"field-filters-unknown-field-q-known-fields-s","errorCode":null,"errorMessage":"field_filters: unknown field %q. Known fields: %s","messagePattern":"field_filters: unknown field %q\\. Known fields: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/github/issues.go","lineNumber":3111,"sourceCode":"}\n\n// resolveFieldFilters matches each raw filter against a known field definition and\n// coerces the value into the right typed slot on IssueFieldValueFilter. Matching is\n// case-insensitive on field name; option names are also matched case-insensitively for\n// single-select fields.\nfunc resolveFieldFilters(rawFilters []rawFieldFilter, fields []IssueField) ([]IssueFieldValueFilter, error) {\n\tbyName := make(map[string]IssueField, len(fields))\n\tknownNames := make([]string, 0, len(fields))\n\tfor _, f := range fields {\n\t\tbyName[strings.ToLower(f.Name)] = f\n\t\tknownNames = append(knownNames, f.Name)\n\t}\n\n\tout := make([]IssueFieldValueFilter, 0, len(rawFilters))\n\tfor _, rf := range rawFilters {\n\t\tfield, ok := byName[strings.ToLower(rf.Name)]\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"field_filters: unknown field %q. Known fields: %s\", rf.Name, strings.Join(knownNames, \", \"))\n\t\t}\n\n\t\tfilter := IssueFieldValueFilter{FieldName: githubv4.String(field.Name)}\n\t\tswitch field.DataType {\n\t\tcase \"SINGLE_SELECT\":\n\t\t\t// Validate the option name against the field's options so we fail fast\n\t\t\t// with a useful error instead of an opaque GraphQL one.\n\t\t\tvar matched string\n\t\t\tfor _, o := range field.Options {\n\t\t\t\tif strings.EqualFold(o.Name, rf.Value) {\n\t\t\t\t\tmatched = o.Name\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif matched == \"\" {\n\t\t\t\toptionNames := make([]string, 0, len(field.Options))\n\t\t\t\tfor _, o := range field.Options {\n\t\t\t\t\toptionNames = append(optionNames, o.Name)","sourceCodeStart":3093,"sourceCodeEnd":3129,"githubUrl":"https://github.com/github/github-mcp-server/blob/0ea1f775a7c73eff1bd2e25904d01136756bbfe2/pkg/github/issues.go#L3093-L3129","documentation":"resolveFieldFilters could not match a field_filters entry's name (case-insensitively) against any field defined on the repository's issues, and the error lists every known field name to guide correction. Fields come from the repository's issue field definitions fetched before resolution.","triggerScenarios":"Filtering on a field that does not exist in this repo, e.g. field_name \"Sprint\" when only Priority and Status exist; using a typo or a label name instead of a field name.","commonSituations":"Assuming another repository's project fields exist here; referencing built-in concepts (labels, milestones, assignees) that are not issue fields; custom fields renamed or deleted since the last run.","solutions":["Pick the correct name from the 'Known fields' list printed in the error message","Re-list the repository's issue fields (the toolset's field-listing tool / GraphQL issueFields query) to see current names","Note that matching is case-insensitive, so only spelling — not casing — matters"],"exampleFix":"// before\n{\"field_filters\":[{\"field_name\":\"Sprint\",\"value\":\"P1\"}]}\n// after\n{\"field_filters\":[{\"field_name\":\"Priority\",\"value\":\"P1\"}]}","handlingStrategy":"validation","validationCode":"func checkKnownField(name string, known []string) error {\n\tfor _, k := range known {\n\t\tif strings.EqualFold(k, name) {\n\t\t\treturn nil\n\t\t}\n\t}\n\treturn fmt.Errorf(\"unknown field %q; known: %s\", name, strings.Join(known, \", \"))\n}","typeGuard":"func isKnownField(name string, known []string) bool {\n\tfor _, k := range known {\n\t\tif strings.EqualFold(k, name) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}","tryCatchPattern":"if err != nil && strings.Contains(err.Error(), \"unknown field\") {\n    // Error already lists known fields; parse it and re-prompt with a valid name.\n    known := extractKnownFields(err.Error())\n    _ = known\n}","preventionTips":["Fetch the repository's field list once per session and cache it for validation","Never guess field names; reuse them verbatim from the listing"],"tags":["validation","field-filters","issues","unknown-field"],"backgroundTag":null,"analyzedSha":"0ea1f775a7c73eff1bd2e25904d01136756bbfe2","analyzedAt":"2026-08-15T18:10:19.804Z","schemaVersion":2},"datasetVersion":"2026-08-16T03:17:38.424Z"}