{"record":{"id":"4d558dc9fc195314","repo":"charmbracelet/crush","slug":"no-providers-found-matching-q","errorCode":null,"errorMessage":"no providers found matching %q","messagePattern":"no providers found matching %q","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/cmd/models.go","lineNumber":121,"sourceCode":"\t\t\t\tentry.models = append(entry.models, model.ID)\n\t\t\t}\n\t\t\tif len(entry.models) > 0 {\n\t\t\t\tslices.Sort(entry.models)\n\t\t\t\tentries[providerID] = entry\n\t\t\t}\n\t\t}\n\n\t\tvar providerIDs []string\n\t\tfor id := range entries {\n\t\t\tproviderIDs = append(providerIDs, id)\n\t\t}\n\t\tsort.Strings(providerIDs)\n\n\t\tif len(providerIDs) == 0 && len(args) == 0 {\n\t\t\treturn fmt.Errorf(\"no providers found\")\n\t\t}\n\t\tif len(providerIDs) == 0 {\n\t\t\treturn fmt.Errorf(\"no providers found matching %q\", term)\n\t\t}\n\n\t\tif !isatty.IsTerminal(os.Stdout.Fd()) {\n\t\t\tfor _, providerID := range providerIDs {\n\t\t\t\tentry := entries[providerID]\n\t\t\t\tfor _, modelID := range entry.models {\n\t\t\t\t\tfmt.Println(providerID + \"/\" + modelID)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\n\t\tt := tree.New()\n\t\tfor _, providerID := range providerIDs {\n\t\t\tentry := entries[providerID]\n\t\t\tlabel := providerID\n\t\t\tif !entry.configured {\n\t\t\t\tlabel += \" (not configured)\"","sourceCodeStart":103,"sourceCodeEnd":139,"githubUrl":"https://github.com/charmbracelet/crush/blob/7944b8e52225d8805e31eacbf7ef24856b0dfb7a/internal/cmd/models.go#L103-L139","documentation":"internal/cmd/models.go raises 'no providers found matching %q' when a search term was supplied to the models listing but zero providers matched the filter. Unlike the no-argument variant, this tells the user their specific query did not match any known provider.","triggerScenarios":"Running `crush models <term>` where <term> does not match any provider id in the resolved catalog (empty entries filtered by term).","commonSituations":"Typo in provider name (`crush models antropic`); provider removed/renamed in catalog; case-sensitive mismatch; provider not configured locally so it never appears in entries.","solutions":["Run `crush models` without arguments to list valid provider ids","Correct the spelling/case of the provider id in the search term","Add the missing provider to crushrc if it is genuinely not configured","Check the catalog is up to date (network) if the provider recently changed names"],"exampleFix":"// before\ncrush models antropic\n// after\ncrush models anthropic","handlingStrategy":"validation","validationCode":"ids := providerIDsMatching(term)\nif len(ids) == 0 {\n    fmt.Println(\"available:\", strings.Join(allProviderIDs(), \", \"))\n}","typeGuard":null,"tryCatchPattern":"if err := runModels(term); err != nil {\n    if strings.Contains(err.Error(), \"no providers found matching\") {\n        // list valid ids and correct the term\n    }\n    return err\n}","preventionTips":["List providers first with `crush models` before filtering","Double-check provider id spelling and case","Keep local provider config in sync with the catalog"],"tags":["config","providers","models","search"],"backgroundTag":"no-providers-configured","analyzedSha":"7944b8e52225d8805e31eacbf7ef24856b0dfb7a","analyzedAt":"2026-08-29T12:48:59.079Z","schemaVersion":2},"datasetVersion":"2026-08-29T17:17:51.833Z"}