@@ -182,38 +182,45 @@ class ServerStore {
182182 } catch ( error ) {
183183 const hadCachedProps = this . _serverProps !== null ;
184184 let errorMessage = 'Failed to connect to server' ;
185+ let isOfflineLikeError = false ;
186+ let isServerSideError = false ;
185187
186188 if ( error instanceof Error ) {
187189 // Handle specific error types with user-friendly messages
188190 if ( error . name === 'TypeError' && error . message . includes ( 'fetch' ) ) {
189191 errorMessage = 'Server is not running or unreachable' ;
192+ isOfflineLikeError = true ;
190193 } else if ( error . message . includes ( 'ECONNREFUSED' ) ) {
191194 errorMessage = 'Connection refused - server may be offline' ;
195+ isOfflineLikeError = true ;
192196 } else if ( error . message . includes ( 'ENOTFOUND' ) ) {
193197 errorMessage = 'Server not found - check server address' ;
198+ isOfflineLikeError = true ;
194199 } else if ( error . message . includes ( 'ETIMEDOUT' ) ) {
195200 errorMessage = 'Connection timeout - server may be overloaded' ;
201+ isOfflineLikeError = true ;
196202 } else if ( error . message . includes ( '503' ) ) {
197203 errorMessage = 'Server temporarily unavailable - try again shortly' ;
204+ isServerSideError = true ;
198205 } else if ( error . message . includes ( '500' ) ) {
199206 errorMessage = 'Server error - check server logs' ;
207+ isServerSideError = true ;
200208 } else if ( error . message . includes ( '404' ) ) {
201209 errorMessage = 'Server endpoint not found' ;
202210 } else if ( error . message . includes ( '403' ) || error . message . includes ( '401' ) ) {
203211 errorMessage = 'Access denied' ;
204212 }
205213 }
206214
207- const is500Error = error instanceof Error && error . message . includes ( '500' ) ;
215+ let cachedProps : ApiLlamaCppServerProps | null = null ;
208216
209217 if ( ! hadCachedProps ) {
210- const cachedProps = this . readCachedServerProps ( ) ;
218+ cachedProps = this . readCachedServerProps ( ) ;
211219 if ( cachedProps ) {
212220 this . _serverProps = cachedProps ;
213221 this . _error = null ;
214222
215- // For 500 errors with cached props, show as warning instead of error
216- if ( is500Error ) {
223+ if ( isOfflineLikeError || isServerSideError ) {
217224 this . _serverWarning = errorMessage ;
218225 }
219226
@@ -227,8 +234,7 @@ class ServerStore {
227234 } else {
228235 this . _error = null ;
229236
230- // For 500 errors with cached props, show as warning instead of error
231- if ( is500Error ) {
237+ if ( isOfflineLikeError || isServerSideError ) {
232238 this . _serverWarning = errorMessage ;
233239 }
234240
0 commit comments