-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Open
Description
I set up plandex on a NixOS server using docker compose. I added an openrouter API key, but hadn't yet purchased any credits. Got this in the docker-compose log:
plandex-server-1 | 2025/10/20 15:39:19.514807 model_error.go:39: Classifying error message: error creating chat completion stream: status code: 402, body: {"error":{"message":"Insufficient credits. This account never purchased credits.
Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
plandex-server-1 | 2025/10/20 15:39:19.514846 model_error.go:85: No error classification based on message
plandex-server-1 | 2025/10/20 15:39:19.514878 client_stream.go:330: withStreamingRetries - retrying stream in 1.194s seconds
plandex-server-1 | 2025/10/20 15:39:20.709452 client_stream.go:261: withStreamingRetries - will run operation
plandex-server-1 | 2025/10/20 15:39:20.709613 client_stream.go:263: (map[string]interface {}) (len=3) {
plandex-server-1 | (string) (len=13) "numTotalRetry": (int) 1,
plandex-server-1 | (string) (len=19) "didProviderFallback": (bool) false,
plandex-server-1 | (string) (len=8) "modelErr": (*shared.ModelError)(0xc0010d4fa0)({
plandex-server-1 | Kind: (shared.ModelErrKind) (len=8) "ErrOther",
plandex-server-1 | Retriable: (bool) true,
plandex-server-1 | RetryAfterSeconds: (int) 0
plandex-server-1 | })
plandex-server-1 | }
plandex-server-1 |
plandex-server-1 | 2025/10/20 15:39:20.709684 client_stream.go:99: processChatCompletionStream - modelConfig (map[string]interface {}) (len=1) {
plandex-server-1 | (string) (len=5) "model": (shared.ModelId) (len=19) "openai/gpt-4.1-mini"
plandex-server-1 | }
plandex-server-1 |
plandex-server-1 | 2025/10/20 15:39:20.847640 client_stream.go:274: withStreamingRetries - operation returned error: error creating chat completion stream: status code: 402, body: {"error":{"message":"Insufficient credits. This account
never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
plandex-server-1 | 2025/10/20 15:39:20.847687 client_stream.go:291: Error in streaming operation: error creating chat completion stream: status code: 402, body: {"error":{"message":"Insufficient credits. This account never purchased cre
dits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}, isFallback: false, numTotalRetry: 1, numFallbackRetry: 0, numRetry: 1, compareRetries: 1, maxRetri
es: 3
plandex-server-1 | 2025/10/20 15:39:20.847921 tell_load.go:72: panic in getPlanSettings: runtime error: invalid memory address or nil pointer dereference
plandex-server-1 | goroutine 1627 [running]:
plandex-server-1 | runtime/debug.Stack()
plandex-server-1 | /usr/local/go/src/runtime/debug/stack.go:26 +0x5e
plandex-server-1 | plandex-server/model/plan.(*activeTellStreamState).loadTellPlan.func1.1.1()
plandex-server-1 | /app/server/model/plan/tell_load.go:72 +0x48
plandex-server-1 | panic({0xeb4060?, 0x391e5b0?})
plandex-server-1 | /usr/local/go/src/runtime/panic.go:785 +0x132
plandex-server-1 | plandex-server/model.withStreamingRetries[...]({0x1215fd0?, 0xc002ad5030}, 0xc0031271b8, 0x102ecd8)
plandex-server-1 | /app/server/model/client_stream.go:293 +0x6ab
plandex-server-1 | plandex-server/model.CreateChatCompletionWithInternalStream(_, _, _, _, _, {_, _}, {_, _}, {0x1215fd0, ...}, ...)
plandex-server-1 | /app/server/model/client_stream.go:55 +0x3dd
plandex-server-1 | plandex-server/model.ModelRequest({_, _}, {0xc005d811d0, 0xc005d810e0, 0xc006b40f30, 0xc000542000, 0xc0015b56c0, 0xc000f5aa20, 0xc0010d45c0, {0xf7a6e2, ...}, ...})
plandex-server-1 | /app/server/model/model_request.go:173 +0x1053
plandex-server-1 | plandex-server/model.GenPlanName(0xc006b40f30, 0xc000542000, 0xc000f5aa20, 0xc0010d45c0, 0xc005d811d0, 0xc005d810e0, {0xc005cda380, 0x311}, {0xc005ce3050, 0x24}, ...)
plandex-server-1 | /app/server/model/name.go:69 +0x4ce
plandex-server-1 | plandex-server/model/plan.(*activeTellStreamState).loadTellPlan.func1.1()
plandex-server-1 | /app/server/model/plan/tell_load.go:95 +0x51d
plandex-server-1 | created by plandex-server/model/plan.(*activeTellStreamState).loadTellPlan.func1 in goroutine 1626
plandex-server-1 | /app/server/model/plan/tell_load.go:69 +0x2ee
Looks like the error cascaded through further after that:
plandex-server-1 | 2025/10/20 15:39:20.848650 state.go:47: apiErr: 500 Error: Error loading plan: panic getting plan settings: runtime error: invalid memory address or nil pointer dereference
plandex-server-1 | goroutine 1627 [running]:
plandex-server-1 | runtime/debug.Stack()
plandex-server-1 | /usr/local/go/src/runtime/debug/stack.go:26 +0x5e
plandex-server-1 | plandex-server/model/plan.(*activeTellStreamState).loadTellPlan.func1.1.1()
plandex-server-1 | /app/server/model/plan/tell_load.go:73 +0x10a
plandex-server-1 | panic({0xeb4060?, 0x391e5b0?})
plandex-server-1 | /usr/local/go/src/runtime/panic.go:785 +0x132
plandex-server-1 | plandex-server/model.withStreamingRetries[...]({0x1215fd0?, 0xc002ad5030}, 0xc0031271b8, 0x102ecd8)
plandex-server-1 | /app/server/model/client_stream.go:293 +0x6ab
plandex-server-1 | plandex-server/model.CreateChatCompletionWithInternalStream(_, _, _, _, _, {_, _}, {_, _}, {0x1215fd0, ...}, ...)
plandex-server-1 | /app/server/model/client_stream.go:55 +0x3dd
plandex-server-1 | plandex-server/model.ModelRequest({_, _}, {0xc005d811d0, 0xc005d810e0, 0xc006b40f30, 0xc000542000, 0xc0015b56c0, 0xc000f5aa20, 0xc0010d45c0, {0xf7a6e2, ...}, ...})
plandex-server-1 | /app/server/model/model_request.go:173 +0x1053
plandex-server-1 | plandex-server/model.GenPlanName(0xc006b40f30, 0xc000542000, 0xc000f5aa20, 0xc0010d45c0, 0xc005d811d0, 0xc005d810e0, {0xc005cda380, 0x311}, {0xc005ce3050, 0x24}, ...)
plandex-server-1 | /app/server/model/name.go:69 +0x4ce
plandex-server-1 | plandex-server/model/plan.(*activeTellStreamState).loadTellPlan.func1.1()
plandex-server-1 | /app/server/model/plan/tell_load.go:95 +0x51d
plandex-server-1 | created by plandex-server/model/plan.(*activeTellStreamState).loadTellPlan.func1 in goroutine 1626
plandex-server-1 | /app/server/model/plan/tell_load.go:69 +0x2ee
plandex-server-1 |
plandex-server-1 | 2025/10/20 15:39:20.848720 state.go:63: Error streaming plan 74885e85-6057-415e-bddc-b8ec06774773: 500 Error: Error loading plan: panic getting plan settings: runtime error: invalid memory address or nil pointer deref
erence
plandex-server-1 | goroutine 1627 [running]:
plandex-server-1 | runtime/debug.Stack()
plandex-server-1 | /usr/local/go/src/runtime/debug/stack.go:26 +0x5e
plandex-server-1 | plandex-server/model/plan.(*activeTellStreamState).loadTellPlan.func1.1.1()
plandex-server-1 | /app/server/model/plan/tell_load.go:73 +0x10a
plandex-server-1 | panic({0xeb4060?, 0x391e5b0?})
plandex-server-1 | /usr/local/go/src/runtime/panic.go:785 +0x132
plandex-server-1 | plandex-server/model.withStreamingRetries[...]({0x1215fd0?, 0xc002ad5030}, 0xc0031271b8, 0x102ecd8)
plandex-server-1 | /app/server/model/client_stream.go:293 +0x6ab
plandex-server-1 | plandex-server/model.CreateChatCompletionWithInternalStream(_, _, _, _, _, {_, _}, {_, _}, {0x1215fd0, ...}, ...)
plandex-server-1 | /app/server/model/client_stream.go:55 +0x3dd
plandex-server-1 | plandex-server/model.ModelRequest({_, _}, {0xc005d811d0, 0xc005d810e0, 0xc006b40f30, 0xc000542000, 0xc0015b56c0, 0xc000f5aa20, 0xc0010d45c0, {0xf7a6e2, ...}, ...})
plandex-server-1 | /app/server/model/model_request.go:173 +0x1053
plandex-server-1 | plandex-server/model.GenPlanName(0xc006b40f30, 0xc000542000, 0xc000f5aa20, 0xc0010d45c0, 0xc005d811d0, 0xc005d810e0, {0xc005cda380, 0x311}, {0xc005ce3050, 0x24}, ...)
plandex-server-1 | /app/server/model/name.go:69 +0x4ce
plandex-server-1 | plandex-server/model/plan.(*activeTellStreamState).loadTellPlan.func1.1()
plandex-server-1 | /app/server/model/plan/tell_load.go:95 +0x51d
plandex-server-1 | created by plandex-server/model/plan.(*activeTellStreamState).loadTellPlan.func1 in goroutine 1626
plandex-server-1 | /app/server/model/plan/tell_load.go:69 +0x2ee
plandex-server-1 |
plandex-server-1 | 2025/10/20 15:39:20.848403 tell_load.go:341: execTellPlan: error loading tell plan: panic getting plan settings: runtime error: invalid memory address or nil pointer dereference
plandex-server-1 | goroutine 1627 [running]:
plandex-server-1 | runtime/debug.Stack()
plandex-server-1 | /usr/local/go/src/runtime/debug/stack.go:26 +0x5e
plandex-server-1 | plandex-server/model/plan.(*activeTellStreamState).loadTellPlan.func1.1.1()
plandex-server-1 | /app/server/model/plan/tell_load.go:73 +0x10a
plandex-server-1 | panic({0xeb4060?, 0x391e5b0?})
plandex-server-1 | /usr/local/go/src/runtime/panic.go:785 +0x132
plandex-server-1 | plandex-server/model.withStreamingRetries[...]({0x1215fd0?, 0xc002ad5030}, 0xc0031271b8, 0x102ecd8)
plandex-server-1 | /app/server/model/client_stream.go:293 +0x6ab
plandex-server-1 | plandex-server/model.CreateChatCompletionWithInternalStream(_, _, _, _, _, {_, _}, {_, _}, {0x1215fd0, ...}, ...)
plandex-server-1 | /app/server/model/client_stream.go:55 +0x3dd
plandex-server-1 | plandex-server/model.ModelRequest({_, _}, {0xc005d811d0, 0xc005d810e0, 0xc006b40f30, 0xc000542000, 0xc0015b56c0, 0xc000f5aa20, 0xc0010d45c0, {0xf7a6e2, ...}, ...})
plandex-server-1 | /app/server/model/model_request.go:173 +0x1053
plandex-server-1 | plandex-server/model.GenPlanName(0xc006b40f30, 0xc000542000, 0xc000f5aa20, 0xc0010d45c0, 0xc005d811d0, 0xc005d810e0, {0xc005cda380, 0x311}, {0xc005ce3050, 0x24}, ...)
plandex-server-1 | /app/server/model/name.go:69 +0x4ce
plandex-server-1 | plandex-server/model/plan.(*activeTellStreamState).loadTellPlan.func1.1()
plandex-server-1 | /app/server/model/plan/tell_load.go:95 +0x51d
plandex-server-1 | created by plandex-server/model/plan.(*activeTellStreamState).loadTellPlan.func1 in goroutine 1626
plandex-server-1 | /app/server/model/plan/tell_load.go:69 +0x2ee
plandex-server-1 |
plandex-server-1 | 2025/10/20 15:39:20.851677 locks.go:511: [Lock][Delete][1607] Lock released: c5c654b0-4ebc-4fb1-9184-c5794f0f5984 for plan 74885e85-6057-415e-bddc-b8ec06774773 | load tell plan
and
plandex-server-1 | 2025/10/20 15:39:20.860556 state.go:72: Sending error message to client
plandex-server-1 | 2025/10/20 15:39:20.860637 active_plan.go:198: ActivePlan.Stream: skipping buffer for special message
plandex-server-1 | 2025/10/20 15:39:20.860887 active_plan.go:199: (shared.StreamMessage) {
plandex-server-1 | Type: (shared.StreamMessageType) (len=5) "error",
plandex-server-1 | ReplyChunk: (string) "",
plandex-server-1 | BuildInfo: (*shared.BuildInfo)(<nil>),
plandex-server-1 | Description: (*shared.ConvoMessageDescription)(<nil>),
plandex-server-1 | Error: (*shared.ApiError)(0xc0004159c0)(500 Error: Error loading plan: panic getting plan settings: runtime error: invalid memory address or nil pointer dereference
plandex-server-1 | goroutine 1627 [running]:
plandex-server-1 | runtime/debug.Stack()
plandex-server-1 | /usr/local/go/src/runtime/debug/stack.go:26 +0x5e
plandex-server-1 | plandex-server/model/plan.(*activeTellStreamState).loadTellPlan.func1.1.1()
plandex-server-1 | /app/server/model/plan/tell_load.go:73 +0x10a
plandex-server-1 | panic({0xeb4060?, 0x391e5b0?})
plandex-server-1 | /usr/local/go/src/runtime/panic.go:785 +0x132
plandex-server-1 | plandex-server/model.withStreamingRetries[...]({0x1215fd0?, 0xc002ad5030}, 0xc0031271b8, 0x102ecd8)
plandex-server-1 | /app/server/model/client_stream.go:293 +0x6ab
plandex-server-1 | plandex-server/model.CreateChatCompletionWithInternalStream(_, _, _, _, _, {_, _}, {_, _}, {0x1215fd0, ...}, ...)
plandex-server-1 | /app/server/model/client_stream.go:55 +0x3dd
plandex-server-1 | plandex-server/model.ModelRequest({_, _}, {0xc005d811d0, 0xc005d810e0, 0xc006b40f30, 0xc000542000, 0xc0015b56c0, 0xc000f5aa20, 0xc0010d45c0, {0xf7a6e2, ...}, ...})
plandex-server-1 | /app/server/model/model_request.go:173 +0x1053
plandex-server-1 | plandex-server/model.GenPlanName(0xc006b40f30, 0xc000542000, 0xc000f5aa20, 0xc0010d45c0, 0xc005d811d0, 0xc005d810e0, {0xc005cda380, 0x311}, {0xc005ce3050, 0x24}, ...)
plandex-server-1 | /app/server/model/name.go:69 +0x4ce
plandex-server-1 | plandex-server/model/plan.(*activeTellStreamState).loadTellPlan.func1.1()
plandex-server-1 | /app/server/model/plan/tell_load.go:95 +0x51d
plandex-server-1 | created by plandex-server/model/plan.(*activeTellStreamState).loadTellPlan.func1 in goroutine 1626
plandex-server-1 | /app/server/model/plan/tell_load.go:69 +0x2ee
plandex-server-1 | ),
plandex-server-1 | MissingFilePath: (string) "",
plandex-server-1 | MissingFileAutoContext: (bool) false,
plandex-server-1 | ModelStreamId: (string) "",
plandex-server-1 | LoadContextFiles: ([]string) <nil>,
plandex-server-1 | InitPrompt: (string) "",
plandex-server-1 | InitReplies: ([]string) <nil>,
plandex-server-1 | InitBuildOnly: (bool) false,
plandex-server-1 | StreamMessages: ([]shared.StreamMessage) <nil>
plandex-server-1 | }
plandex-server-1 |
plandex-server-1 | 2025/10/20 15:39:20.862002 state.go:79: Stopping any active summary stream
Obviously my fault - I should buy credits - but I thought the stack traces would be useful for finding where to put nil pointer checks and graceful error handling.
Metadata
Metadata
Assignees
Labels
No labels