{"record":{"id":"04509b8ddb76cc39","repo":"gastownhall/beads","slug":"w-ready-cannot-filter-on-s-the-blocker-aware","errorCode":null,"errorMessage":"%w: --ready cannot filter on %s; the blocker-aware ready query carries only part of the list vocabulary, so answering would return every ready issue rather than the ones asked for — drop --ready, or drop what it cannot carry","messagePattern":"%w: --ready cannot filter on (.+?); the blocker-aware ready query carries only part of the list vocabulary, so answering would return every ready issue rather than the ones asked for — drop --ready, or drop what it cannot carry","errorType":"validation","errorClass":"ErrValidation","httpStatus":null,"severity":"error","filePath":"issueops/reader_ready_scope.go","lineNumber":128,"sourceCode":"// backend can be missing it — a per-backend copy is the drift this role exists\n// to remove.\n//\n// A request without ReadyFlag is never refused here: every field below is\n// honored by the ordinary listing.\nfunc ValidateReadyFlagScope(req ListRequest) error {\n\tif !req.ReadyFlag {\n\t\treturn nil\n\t}\n\tvar named []string\n\tfor _, f := range readyScopeFields {\n\t\tif f.set(req) {\n\t\t\tnamed = append(named, f.name+\" (\"+f.flag+\")\")\n\t\t}\n\t}\n\tif len(named) == 0 {\n\t\treturn nil\n\t}\n\treturn fmt.Errorf(\"%w: --ready cannot filter on %s; the blocker-aware ready query carries only part of the list vocabulary, so answering would return every ready issue rather than the ones asked for — drop --ready, or drop what it cannot carry\",\n\t\tErrValidation, strings.Join(named, \", \"))\n}\n","sourceCodeStart":110,"sourceCodeEnd":131,"githubUrl":"https://github.com/gastownhall/beads/blob/71377f276968b452ee607177637970a4ff888584/issueops/reader_ready_scope.go#L110-L131","documentation":"ValidateReadyFlagScope rejects --ready queries combined with list filters the blocker-aware ready query cannot honor. The ready query implements only a subset of the full list filter vocabulary; honoring an unsupported filter would silently return every ready issue instead of the requested subset, so the validator fails fast naming the offending filters.","triggerScenarios":"Running `bd ready --ready --label foo` (or any --assignee/--status-type style filter) where the flag is in the unsupported set accumulated into `named`; any programmatic query that combines ReadyFilter with list-only filters.","commonSituations":"Scripts that append standard list flags to a ready query; users familiar with `bd list` flag surface applying it to `bd ready`; automation built before the ready-query filter scope was narrowed.","solutions":["Remove the unsupported filter flags named in the message from the --ready query.","Post-filter the ready results yourself (e.g. pipe through `bd list` or filter by label client-side).","If filtering is essential, use the full list query instead of --ready and apply readiness criteria manually."],"exampleFix":"// before\nbd ready --ready --label backend\n\n// after\nbd ready\n# then filter labeled issues from the output, or use the list query with readiness criteria","handlingStrategy":"validation","validationCode":"// validate flags before invoking the ready query\nunsupported := []string{\"--label\", \"--assignee\"} // flags outside ready vocabulary\nfor _, f := range args {\n\tif slices.Contains(unsupported, f) {\n\t\treturn fmt.Errorf(\"%s is not supported with --ready\", f)\n\t}\n}","typeGuard":null,"tryCatchPattern":"if err := run(); err != nil {\n\tif strings.Contains(err.Error(), \"--ready cannot filter on\") {\n\t\t// strip unsupported filters and retry plain `bd ready`\n\t}\n\treturn err\n}","preventionTips":["Do not mix `bd list` filter flags into `bd ready` invocations.","Check `bd ready --help` for the supported flag set before scripting.","Post-filter ready output client-side when extra criteria are needed."],"tags":["cli","query-validation","ready-query","filters"],"backgroundTag":"unsupported-filter-combination","analyzedSha":"71377f276968b452ee607177637970a4ff888584","analyzedAt":"2026-08-30T18:55:39.744Z","schemaVersion":2},"datasetVersion":"2026-08-30T23:17:21.991Z"}