From 2bb1afab6836874c0532786a556671dce237835a Mon Sep 17 00:00:00 2001 From: Kunthawat Greethong Date: Wed, 17 Jun 2026 21:40:21 +0700 Subject: [PATCH] fix: extract actual error message from backend error responses The error interceptor was re-throwing the generic axios Error object instead of extracting the actual error message from the response body. Now extracts error.response.data.error for meaningful error messages. --- frontend/src/api/index.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/frontend/src/api/index.js b/frontend/src/api/index.js index dde8748..29ad26d 100644 --- a/frontend/src/api/index.js +++ b/frontend/src/api/index.js @@ -39,7 +39,10 @@ service.interceptors.response.use( return res }, error => { - console.error('Response error:', error) + // Extract actual error message from response body + const backendError = error.response?.data?.error || error.response?.data?.message + const errorMsg = backendError || error.message || 'Unknown error' + console.error('Response error:', errorMsg, error) // 处理超时 if (error.code === 'ECONNABORTED' && error.message.includes('timeout')) { @@ -51,7 +54,10 @@ service.interceptors.response.use( console.error('Network error - please check your connection') } - return Promise.reject(error) + // Reject with a meaningful error message + const enhancedError = new Error(errorMsg) + enhancedError.response = error.response + return Promise.reject(enhancedError) } )