Version 0.9.2 crash #1731

Closed
opened 2026-02-16 17:32:22 -05:00 by yindo · 1 comment
Owner

Originally created by @burbilog on GitHub (Sep 16, 2025).

Opencode 0.9.2 crash, even if i restart it and return to the session:

KVM gcm pts/0%opencode
^[]11;rgb:0000/0000/0000^GCaught panic:

interface conversion: interface {} is nil, not string

Restoring terminal...

goroutine 17138 [running]:
runtime/debug.Stack()
        /opt/hostedtoolcache/go/1.24.7/x64/src/runtime/debug/stack.go:26 +0x5e
github.com/charmbracelet/bubbletea/v2.(*Program).recoverFromPanic(0xc00050c200, {0xcae120, 0xc002749b30})
        /home/runner/go/pkg/mod/github.com/charmbracelet/bubbletea/v2@v2.0.0-beta.4/tea.go:1139 +0x165
github.com/charmbracelet/bubbletea/v2.(*Program).handleCommands.func1.1.1()
        /home/runner/go/pkg/mod/github.com/charmbracelet/bubbletea/v2@v2.0.0-beta.4/tea.go:479 +0x3a
panic({0xcae120?, 0xc002749b30?})
        /opt/hostedtoolcache/go/1.24.7/x64/src/runtime/panic.go:792 +0x132
github.com/sst/opencode/internal/components/chat.renderToolDetails(_, {{0xc000904007, 0x1e}, {0xc0009040ac, 0x1d}, {0xc000904034, 0x1e}, {0xc000904061, 0x1e}, {{0xc0043fd40b, ...}, ...}, ...}, ...)
        /home/runner/work/opencode/opencode/packages/tui/internal/components/chat/message.go:644 +0x3357
github.com/sst/opencode/internal/components/chat.(*messagesComponent).renderView.func2()
        /home/runner/work/opencode/opencode/packages/tui/internal/components/chat/messages.go:603 +0x4c07
github.com/charmbracelet/bubbletea/v2.(*Program).handleCommands.func1.1()
        /home/runner/go/pkg/mod/github.com/charmbracelet/bubbletea/v2@v2.0.0-beta.4/tea.go:484 +0x7d
created by github.com/charmbracelet/bubbletea/v2.(*Program).handleCommands.func1 in goroutine 54
        /home/runner/go/pkg/mod/github.com/charmbracelet/bubbletea/v2@v2.0.0-beta.4/tea.go:474 +0x131

KVM gcm pts/0%opencode
^[]11;rgb:0000/0000/0000^GCaught panic:

interface conversion: interface {} is nil, not string

Restoring terminal...

goroutine 128 [running]:
runtime/debug.Stack()
        /opt/hostedtoolcache/go/1.24.7/x64/src/runtime/debug/stack.go:26 +0x5e
github.com/charmbracelet/bubbletea/v2.(*Program).recoverFromPanic(0xc000258200, {0xcae120, 0xc000438db0})
        /home/runner/go/pkg/mod/github.com/charmbracelet/bubbletea/v2@v2.0.0-beta.4/tea.go:1139 +0x165
github.com/charmbracelet/bubbletea/v2.(*Program).handleCommands.func1.1.1()
        /home/runner/go/pkg/mod/github.com/charmbracelet/bubbletea/v2@v2.0.0-beta.4/tea.go:479 +0x3a
panic({0xcae120?, 0xc000438db0?})
        /opt/hostedtoolcache/go/1.24.7/x64/src/runtime/panic.go:792 +0x132
github.com/sst/opencode/internal/components/chat.renderToolDetails(_, {{0xc003aab907, 0x1e}, {0xc003aab9ac, 0x1d}, {0xc003aab934, 0x1e}, {0xc003aab961, 0x1e}, {{0xc003ab000b, ...}, ...}, ...}, ...)
        /home/runner/work/opencode/opencode/packages/tui/internal/components/chat/message.go:644 +0x3357
github.com/sst/opencode/internal/components/chat.(*messagesComponent).renderView.func2()
        /home/runner/work/opencode/opencode/packages/tui/internal/components/chat/messages.go:603 +0x4c07
github.com/charmbracelet/bubbletea/v2.(*Program).handleCommands.func1.1()
        /home/runner/go/pkg/mod/github.com/charmbracelet/bubbletea/v2@v2.0.0-beta.4/tea.go:484 +0x7d
created by github.com/charmbracelet/bubbletea/v2.(*Program).handleCommands.func1 in goroutine 80
        /home/runner/go/pkg/mod/github.com/charmbracelet/bubbletea/v2@v2.0.0-beta.4/tea.go:474 +0x131

panic: reflect: NumField of non-struct type tea.Model

goroutine 12 [running]:
reflect.(*rtype).NumField(0x0?)
        /opt/hostedtoolcache/go/1.24.7/x64/src/reflect/type.go:782 +0x59
github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).newStructTypeEncoder.func1({0x1149670, 0xcb8fc0}, {0xc004658410, 0x1, 0x1})
        /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:217 +0xc2
github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).newStructTypeEncoder.func1({0x1149670, 0xd6ad60}, {0x1742fe0, 0x0, 0x0})
        /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:226 +0x236
github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).newStructTypeEncoder(0xc0003981b0, {0x1149670, 0xd6ad60})
        /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:260 +0x149
github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).newTypeEncoder(0xc0003981b0, {0x1149670, 0xd6ad60})
        /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:126 +0x33f
github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).typeEncoder(0xc0003981b0, {0x1149670, 0xd6ad60})
        /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:89 +0x1d2
github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).newTypeEncoder.encoder.newInterfaceEncoder.func4({0xc87a00?, 0xc0038d2c10?, 0xc87a00?})
        /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:329 +0x68
github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).encodeMapEntries(0xc00000e1f8, {0xc0046583f0, 0x2, 0x2}, {0xcbac40?, 0xc003830570?, 0x10?})
        /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:368 +0x53a
github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).newTypeEncoder.(*encoder).newMapEncoder.func3({0xcbac40?, 0xc003830570?, 0xc005a4f310?})
        /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:388 +0x65
github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).newFieldTypeEncoder.func1({0xd35260?, 0xc003830560?, 0xd6e420?})
        /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:312 +0x1d6
github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).newStructTypeEncoder.func3({0xd32860?, 0xc003830480?, 0xd32860?})
        /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:272 +0x13f
github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).marshal(0xd32860?, {0xd32860?, 0xc003830480?})
        /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:57 +0xd5
github.com/sst/opencode-sdk-go/internal/apijson.MarshalRoot(...)
        /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:28
github.com/sst/opencode-sdk-go.AppLogParams.MarshalJSON({{{0x0, 0x0}, {0xd84660, 0x4}, 0x0, 0x1, {0x0, 0x0}}, {{0x0, 0x0}, ...}, ...})
        /home/runner/work/opencode/opencode/packages/sdk/go/app.go:228 +0x57
github.com/sst/opencode-sdk-go/internal/requestconfig.NewRequestConfig({0x113d958, 0x1742fe0}, {0xd84634, 0x4}, {0xd839dc, 0x3}, {0xd32860, 0xc003830120}, {0xc51be0, 0xc000262108}, ...)
        /home/runner/work/opencode/opencode/packages/sdk/go/internal/requestconfig/requestconfig.go:98 +0xa5
github.com/sst/opencode-sdk-go/internal/requestconfig.ExecuteNewRequest({0x113d958?, 0x1742fe0?}, {0xd84634?, 0xc005a4fea0?}, {0xd839dc?, 0x0?}, {0xd32860?, 0xc003830120?}, {0xc51be0, 0xc000262108}, ...)
        /home/runner/work/opencode/opencode/packages/sdk/go/internal/requestconfig/requestconfig.go:563 +0x85
github.com/sst/opencode-sdk-go.(*AppService).Log(_, {_, _}, {{{0x0, 0x0}, {0xd84660, 0x4}, 0x0, 0x1, {0x0, ...}}, ...}, ...)
        /home/runner/work/opencode/opencode/packages/sdk/go/app.go:40 +0x16a
github.com/sst/opencode/internal/util.NewAPILogHandler.func1()
        /home/runner/work/opencode/opencode/packages/tui/internal/util/apilogger.go:55 +0x136
created by github.com/sst/opencode/internal/util.NewAPILogHandler in goroutine 1
        /home/runner/work/opencode/opencode/packages/tui/internal/util/apilogger.go:49 +0x145
Originally created by @burbilog on GitHub (Sep 16, 2025). Opencode 0.9.2 crash, even if i restart it and return to the session: ~~~ KVM gcm pts/0%opencode ^[]11;rgb:0000/0000/0000^GCaught panic: interface conversion: interface {} is nil, not string Restoring terminal... goroutine 17138 [running]: runtime/debug.Stack() /opt/hostedtoolcache/go/1.24.7/x64/src/runtime/debug/stack.go:26 +0x5e github.com/charmbracelet/bubbletea/v2.(*Program).recoverFromPanic(0xc00050c200, {0xcae120, 0xc002749b30}) /home/runner/go/pkg/mod/github.com/charmbracelet/bubbletea/v2@v2.0.0-beta.4/tea.go:1139 +0x165 github.com/charmbracelet/bubbletea/v2.(*Program).handleCommands.func1.1.1() /home/runner/go/pkg/mod/github.com/charmbracelet/bubbletea/v2@v2.0.0-beta.4/tea.go:479 +0x3a panic({0xcae120?, 0xc002749b30?}) /opt/hostedtoolcache/go/1.24.7/x64/src/runtime/panic.go:792 +0x132 github.com/sst/opencode/internal/components/chat.renderToolDetails(_, {{0xc000904007, 0x1e}, {0xc0009040ac, 0x1d}, {0xc000904034, 0x1e}, {0xc000904061, 0x1e}, {{0xc0043fd40b, ...}, ...}, ...}, ...) /home/runner/work/opencode/opencode/packages/tui/internal/components/chat/message.go:644 +0x3357 github.com/sst/opencode/internal/components/chat.(*messagesComponent).renderView.func2() /home/runner/work/opencode/opencode/packages/tui/internal/components/chat/messages.go:603 +0x4c07 github.com/charmbracelet/bubbletea/v2.(*Program).handleCommands.func1.1() /home/runner/go/pkg/mod/github.com/charmbracelet/bubbletea/v2@v2.0.0-beta.4/tea.go:484 +0x7d created by github.com/charmbracelet/bubbletea/v2.(*Program).handleCommands.func1 in goroutine 54 /home/runner/go/pkg/mod/github.com/charmbracelet/bubbletea/v2@v2.0.0-beta.4/tea.go:474 +0x131 KVM gcm pts/0%opencode ^[]11;rgb:0000/0000/0000^GCaught panic: interface conversion: interface {} is nil, not string Restoring terminal... goroutine 128 [running]: runtime/debug.Stack() /opt/hostedtoolcache/go/1.24.7/x64/src/runtime/debug/stack.go:26 +0x5e github.com/charmbracelet/bubbletea/v2.(*Program).recoverFromPanic(0xc000258200, {0xcae120, 0xc000438db0}) /home/runner/go/pkg/mod/github.com/charmbracelet/bubbletea/v2@v2.0.0-beta.4/tea.go:1139 +0x165 github.com/charmbracelet/bubbletea/v2.(*Program).handleCommands.func1.1.1() /home/runner/go/pkg/mod/github.com/charmbracelet/bubbletea/v2@v2.0.0-beta.4/tea.go:479 +0x3a panic({0xcae120?, 0xc000438db0?}) /opt/hostedtoolcache/go/1.24.7/x64/src/runtime/panic.go:792 +0x132 github.com/sst/opencode/internal/components/chat.renderToolDetails(_, {{0xc003aab907, 0x1e}, {0xc003aab9ac, 0x1d}, {0xc003aab934, 0x1e}, {0xc003aab961, 0x1e}, {{0xc003ab000b, ...}, ...}, ...}, ...) /home/runner/work/opencode/opencode/packages/tui/internal/components/chat/message.go:644 +0x3357 github.com/sst/opencode/internal/components/chat.(*messagesComponent).renderView.func2() /home/runner/work/opencode/opencode/packages/tui/internal/components/chat/messages.go:603 +0x4c07 github.com/charmbracelet/bubbletea/v2.(*Program).handleCommands.func1.1() /home/runner/go/pkg/mod/github.com/charmbracelet/bubbletea/v2@v2.0.0-beta.4/tea.go:484 +0x7d created by github.com/charmbracelet/bubbletea/v2.(*Program).handleCommands.func1 in goroutine 80 /home/runner/go/pkg/mod/github.com/charmbracelet/bubbletea/v2@v2.0.0-beta.4/tea.go:474 +0x131 panic: reflect: NumField of non-struct type tea.Model goroutine 12 [running]: reflect.(*rtype).NumField(0x0?) /opt/hostedtoolcache/go/1.24.7/x64/src/reflect/type.go:782 +0x59 github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).newStructTypeEncoder.func1({0x1149670, 0xcb8fc0}, {0xc004658410, 0x1, 0x1}) /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:217 +0xc2 github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).newStructTypeEncoder.func1({0x1149670, 0xd6ad60}, {0x1742fe0, 0x0, 0x0}) /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:226 +0x236 github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).newStructTypeEncoder(0xc0003981b0, {0x1149670, 0xd6ad60}) /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:260 +0x149 github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).newTypeEncoder(0xc0003981b0, {0x1149670, 0xd6ad60}) /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:126 +0x33f github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).typeEncoder(0xc0003981b0, {0x1149670, 0xd6ad60}) /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:89 +0x1d2 github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).newTypeEncoder.encoder.newInterfaceEncoder.func4({0xc87a00?, 0xc0038d2c10?, 0xc87a00?}) /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:329 +0x68 github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).encodeMapEntries(0xc00000e1f8, {0xc0046583f0, 0x2, 0x2}, {0xcbac40?, 0xc003830570?, 0x10?}) /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:368 +0x53a github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).newTypeEncoder.(*encoder).newMapEncoder.func3({0xcbac40?, 0xc003830570?, 0xc005a4f310?}) /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:388 +0x65 github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).newFieldTypeEncoder.func1({0xd35260?, 0xc003830560?, 0xd6e420?}) /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:312 +0x1d6 github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).newStructTypeEncoder.func3({0xd32860?, 0xc003830480?, 0xd32860?}) /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:272 +0x13f github.com/sst/opencode-sdk-go/internal/apijson.(*encoder).marshal(0xd32860?, {0xd32860?, 0xc003830480?}) /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:57 +0xd5 github.com/sst/opencode-sdk-go/internal/apijson.MarshalRoot(...) /home/runner/work/opencode/opencode/packages/sdk/go/internal/apijson/encoder.go:28 github.com/sst/opencode-sdk-go.AppLogParams.MarshalJSON({{{0x0, 0x0}, {0xd84660, 0x4}, 0x0, 0x1, {0x0, 0x0}}, {{0x0, 0x0}, ...}, ...}) /home/runner/work/opencode/opencode/packages/sdk/go/app.go:228 +0x57 github.com/sst/opencode-sdk-go/internal/requestconfig.NewRequestConfig({0x113d958, 0x1742fe0}, {0xd84634, 0x4}, {0xd839dc, 0x3}, {0xd32860, 0xc003830120}, {0xc51be0, 0xc000262108}, ...) /home/runner/work/opencode/opencode/packages/sdk/go/internal/requestconfig/requestconfig.go:98 +0xa5 github.com/sst/opencode-sdk-go/internal/requestconfig.ExecuteNewRequest({0x113d958?, 0x1742fe0?}, {0xd84634?, 0xc005a4fea0?}, {0xd839dc?, 0x0?}, {0xd32860?, 0xc003830120?}, {0xc51be0, 0xc000262108}, ...) /home/runner/work/opencode/opencode/packages/sdk/go/internal/requestconfig/requestconfig.go:563 +0x85 github.com/sst/opencode-sdk-go.(*AppService).Log(_, {_, _}, {{{0x0, 0x0}, {0xd84660, 0x4}, 0x0, 0x1, {0x0, ...}}, ...}, ...) /home/runner/work/opencode/opencode/packages/sdk/go/app.go:40 +0x16a github.com/sst/opencode/internal/util.NewAPILogHandler.func1() /home/runner/work/opencode/opencode/packages/tui/internal/util/apilogger.go:55 +0x136 created by github.com/sst/opencode/internal/util.NewAPILogHandler in goroutine 1 /home/runner/work/opencode/opencode/packages/tui/internal/util/apilogger.go:49 +0x145 ~~~
yindo closed this issue 2026-02-16 17:32:22 -05:00
Author
Owner

@github-actions[bot] commented on GitHub (Sep 16, 2025):

This issue might be a duplicate of existing issues. Please check:

  • #2353: Both involve bubbletea crashes with goroutine panics and 'Caught panic' messages, though with different specific error types

Feel free to ignore if none of these address your specific case.

@github-actions[bot] commented on GitHub (Sep 16, 2025): This issue might be a duplicate of existing issues. Please check: - #2353: Both involve bubbletea crashes with goroutine panics and 'Caught panic' messages, though with different specific error types Feel free to ignore if none of these address your specific case.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: anomalyco/opencode#1731