Commit faee59ee authored by erio's avatar erio
Browse files

fix(payment): propagate reason/metadata in API error responses

The API client's error interceptor was dropping the reason and metadata
fields from backend error responses. This caused PaymentView to miss
specific error codes (TOO_MANY_PENDING, CANCEL_RATE_LIMITED) and fall
back to generic error messages.
parent 217b7ea6
...@@ -92,10 +92,13 @@ apiClient.interceptors.response.use( ...@@ -92,10 +92,13 @@ apiClient.interceptors.response.use(
response.data = apiResponse.data response.data = apiResponse.data
} else { } else {
// API error // API error
const resp = apiResponse as Record<string, unknown>
return Promise.reject({ return Promise.reject({
status: response.status, status: response.status,
code: apiResponse.code, code: apiResponse.code,
message: apiResponse.message || 'Unknown error' message: apiResponse.message || 'Unknown error',
reason: resp.reason,
metadata: resp.metadata,
}) })
} }
} }
...@@ -268,7 +271,9 @@ apiClient.interceptors.response.use( ...@@ -268,7 +271,9 @@ apiClient.interceptors.response.use(
status, status,
code: apiData.code, code: apiData.code,
error: apiData.error, error: apiData.error,
message: apiData.message || apiData.detail || error.message message: apiData.message || apiData.detail || error.message,
reason: apiData.reason,
metadata: apiData.metadata,
}) })
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment