plandex-ai/plandex · error
model config is nil
Error message
model config is nil
What it means
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.
Source
Thrown at app/server/model/client_stream.go:62
req.Model += ":nitro"
}
// Force streaming mode since we're using the streaming API
req.Stream = true
// Include usage in stream response
req.StreamOptions = &openai.StreamOptions{
IncludeUsage: true,
}
return withStreamingRetries(ctx, func(numTotalRetry int, didProviderFallback bool, modelErr *shared.ModelError) (resp *types.ModelResponse, fallbackRes shared.FallbackResult, err error) {
handleClaudeMaxRateLimitedIfNeeded(modelErr, modelConfig, authVars, settings, orgUserConfig, currentOrgId, currentUserId)
fallbackRes = modelConfig.GetFallbackForModelError(numTotalRetry, didProviderFallback, modelErr, authVars, settings, orgUserConfig)
resolvedModelConfig := fallbackRes.ModelRoleConfig
if resolvedModelConfig == nil {
return nil, fallbackRes, fmt.Errorf("model config is nil")
}
providerComposite := resolvedModelConfig.GetProviderComposite(authVars, settings, orgUserConfig)
opClient, ok := clients[providerComposite]
if !ok {
return nil, fallbackRes, fmt.Errorf("client not found for provider composite: %s", providerComposite)
}
modelConfig = resolvedModelConfig
resp, err = processChatCompletionStream(resolvedModelConfig, opClient, authVars, settings, orgUserConfig, ctx, req, onStream, reqStarted)
if err != nil {
return nil, fallbackRes, err
}
return resp, fallbackRes, nil
}, func(resp *types.ModelResponse, err error) {
if resp != nil {
resp.Stopped = trueView on GitHub (pinned to e2d772072e)
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
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at app/server/model/client_stream.go:62 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of plandex-ai/plandex@e2d772072e (2026-09-05).
Data as JSON: /api/errors/e3ef20acab0874ca.
Report an issue: GitHub.