summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAiden Cline <[email protected]>2025-10-30 01:41:28 -0500
committerAiden Cline <[email protected]>2025-10-30 01:41:28 -0500
commitaca32eaa1c1e16ca1e4044ac9ea28050a78d5381 (patch)
treefef56e192a77674a36a1f540d143c0c6c4f374a8
parent3ae75d70310347023f16a7d25156824e630fd9c0 (diff)
downloadopencode-aca32eaa1c1e16ca1e4044ac9ea28050a78d5381.tar.gz
opencode-aca32eaa1c1e16ca1e4044ac9ea28050a78d5381.zip
fix: tui not showing some errors
-rw-r--r--packages/tui/internal/components/chat/messages.go2
-rw-r--r--packages/tui/internal/tui/tui.go14
2 files changed, 16 insertions, 0 deletions
diff --git a/packages/tui/internal/components/chat/messages.go b/packages/tui/internal/components/chat/messages.go
index a09e809f0..3d52b84e5 100644
--- a/packages/tui/internal/components/chat/messages.go
+++ b/packages/tui/internal/components/chat/messages.go
@@ -656,6 +656,8 @@ func (m *messagesComponent) renderView() tea.Cmd {
case nil:
case opencode.AssistantMessageErrorMessageOutputLengthError:
error = "Message output length exceeded"
+ case opencode.AssistantMessageErrorAPIError:
+ error = err.Data.Message
case opencode.ProviderAuthError:
error = err.Data.Message
case opencode.MessageAbortedError:
diff --git a/packages/tui/internal/tui/tui.go b/packages/tui/internal/tui/tui.go
index 279443674..3a0bc3730 100644
--- a/packages/tui/internal/tui/tui.go
+++ b/packages/tui/internal/tui/tui.go
@@ -656,12 +656,26 @@ func (a Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
case opencode.EventListResponseEventSessionError:
switch err := msg.Properties.Error.AsUnion().(type) {
case nil:
+ // No error details provided
case opencode.ProviderAuthError:
slog.Error("Failed to authenticate with provider", "error", err.Data.Message)
return a, toast.NewErrorToast("Provider error: " + err.Data.Message)
case opencode.UnknownError:
slog.Error("Server error", "name", err.Name, "message", err.Data.Message)
return a, toast.NewErrorToast(err.Data.Message, toast.WithTitle(string(err.Name)))
+ case opencode.EventListResponseEventSessionErrorPropertiesErrorAPIError:
+ slog.Error("API error", "message", err.Data.Message, "statusCode", err.Data.StatusCode)
+ return a, toast.NewErrorToast(err.Data.Message, toast.WithTitle(string(err.Name)))
+ case opencode.MessageAbortedError:
+ // Message was aborted - this is expected when user cancels, so just log it
+ slog.Debug("Message aborted", "message", err.Data.Message)
+ case opencode.EventListResponseEventSessionErrorPropertiesErrorMessageOutputLengthError:
+ slog.Error("Message output length error")
+ return a, toast.NewErrorToast("Message output length exceeded limit")
+ default:
+ // Handle any unhandled error types
+ slog.Error("Unhandled session error type", "type", fmt.Sprintf("%T", err))
+ return a, toast.NewErrorToast("An unexpected error occurred")
}
case opencode.EventListResponseEventSessionCompacted:
if msg.Properties.SessionID == a.app.Session.ID {