From f197e26fb05f6bb46217bd09190da2de7c759cd8 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 20 Jun 2025 19:04:09 +0200 Subject: [PATCH] Improve error handling --- ios/VibeTunnel/Services/APIClient.swift | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/ios/VibeTunnel/Services/APIClient.swift b/ios/VibeTunnel/Services/APIClient.swift index 7dc38d64..e4ade157 100644 --- a/ios/VibeTunnel/Services/APIClient.swift +++ b/ios/VibeTunnel/Services/APIClient.swift @@ -179,7 +179,24 @@ class APIClient: APIClientProtocol { print("[APIClient] Response body: \(responseString)") } - try validateResponse(response) + // Check if the response is an error + if let httpResponse = response as? HTTPURLResponse, !(200..<300).contains(httpResponse.statusCode) { + // Try to parse error response + struct ErrorResponse: Codable { + let error: String? + let details: String? + let code: String? + } + + if let errorResponse = try? decoder.decode(ErrorResponse.self, from: responseData) { + let errorMessage = errorResponse.details ?? errorResponse.error ?? "Unknown error" + print("[APIClient] Server error: \(errorMessage)") + throw APIError.serverError(httpResponse.statusCode, errorMessage) + } else { + // Fallback to generic error + throw APIError.serverError(httpResponse.statusCode, nil) + } + } struct CreateResponse: Codable { let sessionId: String