diff --git a/src/libs/endorserServer.ts b/src/libs/endorserServer.ts index bf0d3f95..23eed625 100644 --- a/src/libs/endorserServer.ts +++ b/src/libs/endorserServer.ts @@ -1555,8 +1555,53 @@ export async function fetchEndorserRateLimits( * @param {string} issuerDid - The DID for which to check rate limits. * @returns {Promise} The Axios response object. */ -export async function fetchImageRateLimits(axios: Axios, issuerDid: string) { - const url = DEFAULT_IMAGE_API_SERVER + "/image-limits"; +export async function fetchImageRateLimits( + axios: Axios, + issuerDid: string, + imageServer?: string, +) { + const server = imageServer || DEFAULT_IMAGE_API_SERVER; + const url = server + "/image-limits"; const headers = await getHeaders(issuerDid); - return await axios.get(url, { headers } as AxiosRequestConfig); + + // Enhanced diagnostic logging for image server calls + logger.info("[Image Server] Checking image rate limits:", { + did: issuerDid, + server: server, + endpoint: url, + timestamp: new Date().toISOString(), + }); + + try { + const response = await axios.get(url, { headers } as AxiosRequestConfig); + + // Log successful image server call + logger.info("[Image Server] Image rate limits check successful:", { + did: issuerDid, + server: server, + status: response.status, + timestamp: new Date().toISOString(), + }); + + return response; + } catch (error) { + // Enhanced error logging for image server failures + const axiosError = error as { + response?: { + data?: { error?: { code?: string; message?: string } }; + status?: number; + }; + }; + + logger.warn("[Image Server] Image rate limits check failed:", { + did: issuerDid, + server: server, + errorCode: axiosError.response?.data?.error?.code, + errorMessage: axiosError.response?.data?.error?.message, + httpStatus: axiosError.response?.status, + timestamp: new Date().toISOString(), + }); + + throw error; + } } diff --git a/src/views/AccountViewView.vue b/src/views/AccountViewView.vue index 1a072cd2..669cf8e2 100644 --- a/src/views/AccountViewView.vue +++ b/src/views/AccountViewView.vue @@ -1440,7 +1440,11 @@ export default class AccountViewView extends Vue { webPushServer: this.webPushServer, }); - const imageResp = await fetchImageRateLimits(this.axios, did); + const imageResp = await fetchImageRateLimits( + this.axios, + did, + this.DEFAULT_IMAGE_API_SERVER, + ); if (imageResp.status === 200) { this.imageLimits = imageResp.data;