Detailed changes
@@ -493,12 +493,7 @@ func (a *anthropicClient) shouldRetry(attempts int, err error) (bool, int64, err
}
if apiErr.StatusCode == 401 {
- a.providerOptions.apiKey, err = config.Get().Resolve(a.providerOptions.config.APIKey)
- if err != nil {
- return false, 0, fmt.Errorf("failed to resolve API key: %w", err)
- }
- a.client = createAnthropicClient(a.providerOptions, a.tp)
- return true, 0, nil
+ return false, 0, err
}
// Handle context limit exceeded error (400 Bad Request)
@@ -436,15 +436,7 @@ func (g *geminiClient) shouldRetry(attempts int, err error) (bool, int64, error)
// Check for token expiration (401 Unauthorized)
if contains(errMsg, "unauthorized", "invalid api key", "api key expired") {
- g.providerOptions.apiKey, err = config.Get().Resolve(g.providerOptions.config.APIKey)
- if err != nil {
- return false, 0, fmt.Errorf("failed to resolve API key: %w", err)
- }
- g.client, err = createGeminiClient(g.providerOptions)
- if err != nil {
- return false, 0, fmt.Errorf("failed to create Gemini client after API key refresh: %w", err)
- }
- return true, 0, nil
+ return false, 0, err
}
// Check for common rate limit error messages
@@ -514,12 +514,7 @@ func (o *openaiClient) shouldRetry(attempts int, err error) (bool, int64, error)
if errors.As(err, &apiErr) {
// Check for token expiration (401 Unauthorized)
if apiErr.StatusCode == 401 {
- o.providerOptions.apiKey, err = config.Get().Resolve(o.providerOptions.config.APIKey)
- if err != nil {
- return false, 0, fmt.Errorf("failed to resolve API key: %w", err)
- }
- o.client = createOpenAIClient(o.providerOptions)
- return true, 0, nil
+ return false, 0, err
}
if apiErr.StatusCode != 429 && apiErr.StatusCode != 500 {
@@ -13,7 +13,7 @@ import (
type EventType string
-const maxRetries = 8
+const maxRetries = 3
const (
EventContentStart EventType = "content_start"