{"record":{"id":"8b413cd80d7db6cc","repo":"charmbracelet/crush","slug":"failed-to-configure-providers-w","errorCode":null,"errorMessage":"failed to configure providers: %w","messagePattern":"failed to configure providers: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/config/load.go","lineNumber":134,"sourceCode":"\t}\n\tstore.knownProviders = providers\n\n\tenv := env.New()\n\t// Configure providers\n\tvalueResolver := NewShellVariableResolver(env)\n\tstore.resolver = valueResolver\n\n\t// Hold writeMu during initial load to prevent configureProviders\n\t// from triggering auto-reload via RemoveConfigField.\n\tstore.writeMu.Lock()\n\tdefer store.writeMu.Unlock()\n\n\t// Apply top-level env vars before configuring providers so variables\n\t// like AWS_PROFILE are visible to the AWS SDK credential chain.\n\tcfg.applyEnv(valueResolver)\n\n\tif err := cfg.configureProviders(context.Background(), store, env, valueResolver, store.knownProviders); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to configure providers: %w\", err)\n\t}\n\n\tif !cfg.IsConfigured() {\n\t\tslog.Warn(\"No providers configured\")\n\t\treturn store, nil\n\t}\n\n\tresolved, err := resolveSelectedModels(cfg, store.knownProviders)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to configure selected models: %w\", err)\n\t}\n\tcfg.Models[SelectedModelTypeLarge] = resolved.Large\n\tcfg.Models[SelectedModelTypeSmall] = resolved.Small\n\n\t// Persist any fallback corrections while we still hold writeMu.\n\tif resolved.LargeFallback {\n\t\tif err := store.updateLocked(ScopeGlobal, func(c *Config) map[string]any {\n\t\t\treturn store.updatePreferredModelFields(c, SelectedModelTypeLarge, resolved.Large)","sourceCodeStart":116,"sourceCodeEnd":152,"githubUrl":"https://github.com/charmbracelet/crush/blob/7944b8e52225d8805e31eacbf7ef24856b0dfb7a/internal/config/load.go#L116-L152","documentation":"Load() calls cfg.configureProviders() to resolve provider credentials, headers, and metadata from catwalk/known providers. Any failure inside that pipeline (env resolution, header resolution, model fetching) is wrapped as 'failed to configure providers'.","triggerScenarios":"cfg.configureProviders returns an error — e.g. a provider header env var fails to resolve, required cloud credentials (AWS/Bedrock) are missing, or provider metadata cannot be loaded.","commonSituations":"Missing AWS_PROFILE or AWS credentials for Bedrock; an API-key env var unset where resolution is strict; corrupted provider section in config; catwalk provider catalog unavailable.","solutions":["Inspect the wrapped %w error for the root cause (usually a specific provider or header)","Set the required environment variables (API keys, AWS_PROFILE) before starting","Fix or remove the offending provider entry in crush.json/crushrc","Check network/credential access if the root cause is provider metadata fetching"],"exampleFix":"// before\nexport ANTHROPIC_API_KEY=\ncrush  // failed to configure providers: ...\n// after\nexport ANTHROPIC_API_KEY=sk-ant-...\ncrush","handlingStrategy":"try-catch","validationCode":"for _, key := range requiredEnvVars() { // e.g. AWS_PROFILE, provider API keys\n    if os.Getenv(key) == \"\" {\n        return fmt.Errorf(\"required env var %s is not set\", key)\n    }\n}","typeGuard":null,"tryCatchPattern":"store, err := config.Load(ctx, opts)\nif err != nil {\n    if strings.Contains(err.Error(), \"failed to configure providers:\") {\n        return fmt.Errorf(\"check provider credentials/env: %w\", err)\n    }\n    return err\n}","preventionTips":["Export provider API keys and AWS profile in shell profile or .env loaded before launch","Use options.env in config to pin required env vars","Keep provider configs minimal and validate with a test run after changes","Match SDK requirements (Bedrock needs full AWS credential chain)"],"tags":["config","providers","environment"],"backgroundTag":"provider-configuration-failed","analyzedSha":"7944b8e52225d8805e31eacbf7ef24856b0dfb7a","analyzedAt":"2026-08-29T12:48:59.079Z","schemaVersion":2},"datasetVersion":"2026-08-29T17:17:51.833Z"}