diff --git a/pkg/providers/openai_compat/provider.go b/pkg/providers/openai_compat/provider.go index f93259e02..9a1f00483 100644 --- a/pkg/providers/openai_compat/provider.go +++ b/pkg/providers/openai_compat/provider.go @@ -684,8 +684,15 @@ func parseResponsesResponse(body io.Reader) (*LLMResponse, error) { if err := json.NewDecoder(body).Decode(&apiResponse); err != nil { return nil, fmt.Errorf("failed to decode response: %w", err) } - if strings.TrimSpace(apiResponse.Status) == "" && len(apiResponse.Output) == 0 { - return nil, errors.New("openai responses returned unexpected response shape") + + status := strings.TrimSpace(apiResponse.Status) + switch status { + case "completed", "incomplete": + if len(apiResponse.Output) == 0 { + return nil, errors.New("openai responses returned terminal status with empty output") + } + default: + return nil, fmt.Errorf("openai responses returned unexpected or non-terminal status: %q", status) } var content strings.Builder