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.
This commit is contained in:
@@ -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(
|
|||||||
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,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user