From dc762cc83ff1114c0f9020ac0dbdd71b7c428bc0 Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Wed, 1 Jan 2025 18:57:36 +0100 Subject: [PATCH] Improved error handling --- app/MindWork AI Studio/Provider/BaseProvider.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/MindWork AI Studio/Provider/BaseProvider.cs b/app/MindWork AI Studio/Provider/BaseProvider.cs index 32ee6853..bf5501cb 100644 --- a/app/MindWork AI Studio/Provider/BaseProvider.cs +++ b/app/MindWork AI Studio/Provider/BaseProvider.cs @@ -1,3 +1,5 @@ +using System.Net; + using AIStudio.Chat; using RustService = AIStudio.Tools.RustService; @@ -102,6 +104,13 @@ public abstract class BaseProvider : IProvider, ISecretId response = nextResponse; break; } + + if(nextResponse.StatusCode is HttpStatusCode.BadRequest) + { + this.logger.LogError($"Failed request with status code {nextResponse.StatusCode} (message = '{nextResponse.ReasonPhrase}')."); + errorMessage = nextResponse.ReasonPhrase; + break; + } errorMessage = nextResponse.ReasonPhrase; var timeSeconds = Math.Pow(RETRY_DELAY_SECONDS, retry + 1); @@ -112,7 +121,7 @@ public abstract class BaseProvider : IProvider, ISecretId await Task.Delay(TimeSpan.FromSeconds(timeSeconds), token); } - if(retry >= MAX_RETRIES) + if(retry >= MAX_RETRIES || !string.IsNullOrWhiteSpace(errorMessage)) return new HttpRateLimitedStreamResult(false, true, errorMessage ?? $"Failed after {MAX_RETRIES} retries; no provider message available", response); return new HttpRateLimitedStreamResult(true, false, string.Empty, response);