{"record":{"id":"e3ef20acab0874ca","repo":"plandex-ai/plandex","slug":"model-config-is-nil-e3ef20","errorCode":null,"errorMessage":"model config is nil","messagePattern":"model config is nil","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/server/model/client_stream.go","lineNumber":62,"sourceCode":"\t\treq.Model += \":nitro\"\n\t}\n\n\t// Force streaming mode since we're using the streaming API\n\treq.Stream = true\n\n\t// Include usage in stream response\n\treq.StreamOptions = &openai.StreamOptions{\n\t\tIncludeUsage: true,\n\t}\n\n\treturn withStreamingRetries(ctx, func(numTotalRetry int, didProviderFallback bool, modelErr *shared.ModelError) (resp *types.ModelResponse, fallbackRes shared.FallbackResult, err error) {\n\t\thandleClaudeMaxRateLimitedIfNeeded(modelErr, modelConfig, authVars, settings, orgUserConfig, currentOrgId, currentUserId)\n\n\t\tfallbackRes = modelConfig.GetFallbackForModelError(numTotalRetry, didProviderFallback, modelErr, authVars, settings, orgUserConfig)\n\t\tresolvedModelConfig := fallbackRes.ModelRoleConfig\n\n\t\tif resolvedModelConfig == nil {\n\t\t\treturn nil, fallbackRes, fmt.Errorf(\"model config is nil\")\n\t\t}\n\n\t\tproviderComposite := resolvedModelConfig.GetProviderComposite(authVars, settings, orgUserConfig)\n\t\topClient, ok := clients[providerComposite]\n\n\t\tif !ok {\n\t\t\treturn nil, fallbackRes, fmt.Errorf(\"client not found for provider composite: %s\", providerComposite)\n\t\t}\n\n\t\tmodelConfig = resolvedModelConfig\n\t\tresp, err = processChatCompletionStream(resolvedModelConfig, opClient, authVars, settings, orgUserConfig, ctx, req, onStream, reqStarted)\n\t\tif err != nil {\n\t\t\treturn nil, fallbackRes, err\n\t\t}\n\t\treturn resp, fallbackRes, nil\n\t}, func(resp *types.ModelResponse, err error) {\n\t\tif resp != nil {\n\t\t\tresp.Stopped = true","sourceCodeStart":44,"sourceCodeEnd":80,"githubUrl":"https://github.com/plandex-ai/plandex/blob/e2d772072efadbe41d2946d97d79be55532dbab5/app/server/model/client_stream.go#L44-L80","documentation":"Sentinel guard in the streaming-request path: the resolved modelConfig is nil, so there is no model configuration (model, fallbacks, provider) to build a request from. Indicates unset/invalid settings for the role being executed.","triggerScenarios":"Thrown at app/server/model/client_stream.go:62 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure plan settings define a model for the role being requested","Check that settings resolution (GetModelRoleConfig) did not silently return nil","Fix defaults so every role has a config"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e2d772072efadbe41d2946d97d79be55532dbab5","analyzedAt":"2026-09-05T20:56:53.631Z","contentChangedAt":"2026-09-05T20:56:53.631Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}