(node:1980) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 uncaughtException listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created)  PASS  test/unit/lib/requests/mojaloopRequests.test.js PUT /parties ✓ signs put parties when jwsSign and jwsSignPutParties are true (13 ms) ✓ does not sign put parties when jwsSign is true and jwsSignPutParties is false (2 ms) ✓ does not sign put parties when jwsSign and jwsSignPutParties are false (8 ms) ✓ does not sign put parties when jwsSign is false and jwsSignPutParties is true (2 ms) ✓ should be able to pass additional axios options (3 ms) PUT /quotes ✓ signs put quotes when jwsSign is true and jwsSignPutParties is false (5 ms) ✓ does not sign put quotes when jwsSign is false and jwsSignPutParties is true (3 ms) ✓ does not sign put quotes when jwsSign is false and jwsSignPutParties is false (2 ms) ✓ signs put parties when jwsSign is true and jwsSignPutParties is not supplied (4 ms) ✓ does not sign put parties when jwsSign is false and jwsSignPutParties is not supplied (2 ms) postAuthorizations ✓ executes a `POST /authorizations` request (2 ms) patchTransfers ✓ executes a PATCH /transfers request (1 ms) MojaloopRequests ✓ Sends ISO20022 PUT /parties bodies when ApiType is iso20022 (8 ms) ✓ Sends FSPIOP PUT /parties bodies when ApiType is fspiop (1 ms) ✓ Sends ISO20022 PUT /parties error bodies when ApiType is iso20022 (2 ms) ✓ Sends FSPIOP PUT /parties error bodies when ApiType is fspiop (1 ms) ✓ Sends FSPIOP POST /participants bodies when ApiType is iso20022. Resource type NOT transformed (1 ms) ✓ Sends FSPIOP POST /participants bodies when ApiType is fspiop (1 ms) ✓ Sends FSPIOP PUT /participants bodies when ApiType is iso20022. Resource type NOT transformed ✓ Sends FSPIOP PUT /participants bodies when ApiType is fspiop ✓ Sends FSPIOP PUT /participants error bodies when ApiType is iso20022. Resource type NOT transformed (1 ms) ✓ Sends FSPIOP PUT /participants error bodies when ApiType is fspiop (1 ms) ✓ Sends ISO20022 POST /quotes bodies when ApiType is iso20022 (4 ms) ✓ Sends FSPIOP POST /quotes bodies when ApiType is fspiop (1 ms) ✓ Sends ISO20022 PUT /quotes bodies when ApiType is iso20022 (2 ms) ✓ Sends ISO20022 PUT /quotes bodies when ApiType is iso20022 and $context.isoPostQuote is specified and testing mode=false (5 ms) ✓ Sends FSPIOP PUT /quotes bodies when ApiType is fspiop (1 ms) ✓ Sends ISO20022 PUT /quotes error bodies when ApiType is iso20022 (2 ms) ✓ Sends FSPIOP PUT /quotes error bodies when ApiType is fspiop ✓ Sends ISO20022 POST /transfers bodies when ApiType is iso20022 (2 ms) ✓ Sends ISO20022 POST /transfers bodies when ApiType is iso20022 and $context.isoPostQuote is specified and testing mode=false (10 ms) ✓ Sends FSPIOP PUT /transfers bodies when ApiType is fspiop (2 ms) ✓ Sends ISO20022 PUT /transfers bodies when ApiType is iso20022 (2 ms) ✓ Sends FSPIOP PUT /transfers bodies when ApiType is fspiop ✓ Sends ISO20022 PATCH /transfers bodies when ApiType is iso20022 (1 ms) ✓ Sends FSPIOP PATCH /transfers bodies when ApiType is fspiop (1 ms) ✓ Sends ISO20022 PUT /transfers error bodies when ApiType is iso20022 (2 ms) ✓ Sends FSPIOP PUT /transfers error bodies when ApiType is fspiop ✓ Sends ISO20022 POST /fxQuotes bodies when ApiType is iso20022 (4 ms) ✓ Sends FSPIOP POST /fxQuotes bodies when ApiType is fspiop (1 ms) ✓ Sends ISO20022 PUT /fxQuotes bodies when ApiType is iso20022 (2 ms) ✓ Sends FSPIOP PUT /fxQuotes bodies when ApiType is fspiop (2 ms) ✓ Sends ISO20022 PUT /fxQuotes error bodies when ApiType is iso20022 (2 ms) ✓ Sends FSPIOP PUT /fxQuotes error bodies when ApiType is fspiop (1 ms) ✓ Sends ISO20022 POST /fxTransfers bodies when ApiType is iso20022 (2 ms) ✓ Sends FSPIOP POST /fxTransfers bodies when ApiType is fspiop (1 ms) ✓ Sends ISO20022 PUT /fxTransfers bodies when ApiType is iso20022 (2 ms) ✓ Sends FSPIOP PUT /fxTransfers bodies when ApiType is fspiop (1 ms) ✓ Sends ISO20022 PUT /fxTransfers error bodies when ApiType is iso20022 (2 ms) ✓ Sends FSPIOP PUT /fxTransfers error bodies when ApiType is fspiop (1 ms) ✓ should set FSPIOP headers for putTransactionRequests (1 ms) (node:1980) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 uncaughtException listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit  PASS  test/unit/lib/requests/thirdpartyRequests.test.js Thirdparty Requests Tests --> putConsents ✓ executes a `PUT /consents/{id}` request (3 ms) patchConsents ✓ executes a `PATCH /consents/{id}` request (1 ms) ✓ executes a `PATCH /consents/{id}` request with signing enabled (5 ms) postConsents ✓ executes a `POST /consents` request (1 ms) patchConsentRequests ✓ executes a `PATCH /consentRequests/{ID}` request (1 ms) putConsentRequests ✓ executes a `PUT /consentRequests/{ID}` request (1 ms) putConsentRequestsRequestError ✓ executes a `PUT /consentRequests/{ID}/error` request (1 ms) postConsentRequests ✓ executes a `POST /consentRequests` request (1 ms) patchThirdpartyRequestsTransactions ✓ executes a `PATCH /thirdpartyRequests/transactions/{ID}` request getThirdpartyRequestsTransactions ✓ executes a `GET /thirdpartyRequests/transactions/{ID}` request *ThirdpartyRequestsAuthorizations ✓ executes a POST /thirdpartyRequests/authorizations call (1 ms) ✓ executes a PUT /thirdpartyRequests/authorizations/{ID} call (1 ms) ✓ executes a PUT /thirdpartyRequests/authorizations/{ID}/error call (1 ms) accountRequests ✓ executes a `GET /accounts/{ID}` request ✓ executes a `PUT /accounts/{ID}` request (1 ms) ✓ executes a `PUT /accounts/{ID}/error` request (1 ms) /verifications requests ✓ executes a `POST /thirdpartyRequests/verifications` request (1 ms) ✓ executes a `PUT /thirdpartyRequests/verifications/{ID}` request (1 ms) ✓ executes a `PUT /thirdpartyRequests/verifications/{ID}/error` request (1 ms) servicesRequests ✓ resolves to service endpoint (1 ms) ✓ executes a `GET /services/{ServiceType}` request (1 ms) ✓ executes a `PUT /services/{ServiceType}` request (1 ms) ✓ executes a `PUT /services/{ID}/error` request (1 ms) 2025-05-15T20:18:14.905Z - warn: Ilp packet `amount` after scaling should be integer - {"amount":"20002222.2","component":"IlpV4","isFx":false} (node:1980) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 uncaughtException listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit  PASS  test/unit/lib/ilp/IlpV4.test.js IlpV4 Tests --> ✓ should have getter "version" (v4) (1 ms) ✓ should generate ILP components for a quote response given a quote request and partial response (3 ms) ✓ should generate ILP v4 components for fxQuote request and partial response (2 ms) ✓ deserializes the ILP packet into a valid transaction object (4 ms) ✓ ILP fulfilment should match condition (2 ms) ✓ should throw error if expiration in transactionObject is undefined (13 ms) ✓ should generate fulfilment, condition and ilpPacket (prepare) using shared method "getResponseIlp" (2 ms) ✓ should calculate fulfilment based on ilpPacket sting (2 ms) calculateIlpPacket Method Tests ✓ should calculate ilp packet from transaction object and condition (1 ms) ✓ should have scale for test currency (1 ms) ✓ should calculate ilp packet with amount with up to 4 decimals for test currency (1 ms) ✓ should throw error on amount with more than defined scale decimals for test currency (4 ms) Ilp Packet Serialize Tests --> ✓ should throw error if amount as empty string in ilp packet (10 ms) ✓ should be able to use ILP_AMOUNT_FOR_FX ("0") as amount in ilp packet (1 ms) ✓ should create ilp packet for fxQuote Ilp Packet Decoding and Validation --> ✓ Should decode the IlpPacket (1 ms) ✓ Should generate transaction object from an Ilp packet (2 ms) ✓ should validate the transfer request against the decoded Ilp packet (1 ms) ✓ Should fail the validation if the data in transfer request is changed (1 ms) 2025-05-15T20:18:15.607Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","error":{"cause":{},"config":{"baseURL":"http://what.ever","method":"get","restData":"[REDACTED]","url":"/"},"message":"Request failed with status code 401","name":"Error","originalRequest":{"baseURL":"http://what.ever","transitional":{"clarifyTimeoutError":true},"url":"/","withCredentials":false},"request":"[REDACTED]","response":{"config":{"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340295495,"retries":3,"retryCount":0,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://what.ever","env":{},"headers":{},"maxBodyLength":-1,"maxContentLength":-1,"method":"get","timeout":65000,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"data":{},"headers":{"content-type":"application/json"},"request":{"responseURL":"/"},"status":401},"status":401,"statusCode":401}} 2025-05-15T20:18:15.608Z - warn: Error attempting request - {"component":"BaseRequests","err":{"config":{"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340295495,"retries":3,"retryCount":0,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://what.ever","env":{},"headers":{},"maxBodyLength":-1,"maxContentLength":-1,"method":"get","timeout":65000,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"message":"Request failed with status code 401","name":"Error","stack":"Error: Request failed with status code 401\n at Function.Object..AxiosError.from (/home/circleci/project/node_modules/axios/lib/core/AxiosError.js:92:14)\n at createAxiosError (/home/circleci/project/node_modules/axios-mock-adapter/src/utils.js:161:29)\n at Object.settle (/home/circleci/project/node_modules/axios-mock-adapter/src/utils.js:150:11)\n at Axios.request (/home/circleci/project/node_modules/axios/lib/core/Axios.js:45:41)\n at AxiosHttpRequester.sendRequest (/home/circleci/project/src/lib/httpRequester/AxiosHttpRequester.js:79:34)\n at Object. (/home/circleci/project/test/unit/lib/requests/baseRequests.test.js:72:9)","status":401},"opts":{"agent":"[REDACTED]","uri":"http://what.ever"}} 2025-05-15T20:18:15.614Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","error":{"cause":{},"config":{"baseURL":"http://what.ever","method":"get","restData":"[REDACTED]","url":"/"},"message":"Request failed with status code 401","name":"Error","originalRequest":{"baseURL":"http://what.ever","headers":{},"transitional":{"clarifyTimeoutError":true},"url":"/","withCredentials":false},"request":"[REDACTED]","response":{"config":{"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340295613,"retries":3,"retryCount":0,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://what.ever","env":{},"headers":{},"maxBodyLength":-1,"maxContentLength":-1,"method":"get","timeout":65000,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"data":{},"headers":{"content-type":"application/json"},"request":{"responseURL":"/"},"status":401},"status":401,"statusCode":401}} 2025-05-15T20:18:15.615Z - warn: Received HTTP 401 for request. Attempting to retrieve a new token. - {"component":"BaseRequests"} 2025-05-15T20:18:15.617Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","error":{"cause":{},"config":{"baseURL":"http://what.ever","method":"get","restData":"[REDACTED]","url":"/"},"message":"Request failed with status code 401","name":"Error","originalRequest":{"baseURL":"http://what.ever","headers":{"Authorization":"Bearer fake-token"},"transitional":{"clarifyTimeoutError":true},"url":"/","withCredentials":false},"request":"[REDACTED]","response":{"config":{"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340295616,"retries":3,"retryCount":0,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://what.ever","env":{},"headers":{"Authorization":"Bearer fake-token"},"maxBodyLength":-1,"maxContentLength":-1,"method":"get","timeout":65000,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"data":{},"headers":{"content-type":"application/json"},"request":{"responseURL":"/"},"status":401},"status":401,"statusCode":401}} 2025-05-15T20:18:15.618Z - warn: Error attempting request - {"component":"BaseRequests","err":{"config":{"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340295616,"retries":3,"retryCount":0,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://what.ever","env":{},"headers":{"Authorization":"Bearer fake-token"},"maxBodyLength":-1,"maxContentLength":-1,"method":"get","timeout":65000,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"message":"Request failed with status code 401","name":"Error","stack":"Error: Request failed with status code 401\n at Function.Object..AxiosError.from (/home/circleci/project/node_modules/axios/lib/core/AxiosError.js:92:14)\n at createAxiosError (/home/circleci/project/node_modules/axios-mock-adapter/src/utils.js:161:29)\n at Object.settle (/home/circleci/project/node_modules/axios-mock-adapter/src/utils.js:150:11)\n at Axios.request (/home/circleci/project/node_modules/axios/lib/core/Axios.js:45:41)\n at AxiosHttpRequester.sendRequest (/home/circleci/project/src/lib/httpRequester/AxiosHttpRequester.js:79:34)\n at Object. (/home/circleci/project/test/unit/lib/requests/baseRequests.test.js:91:9)","status":401},"opts":{"agent":"[REDACTED]","headers":{"Authorization":"Bearer fake-token"},"uri":"http://what.ever"}} 2025-05-15T20:18:15.621Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","error":{"cause":{},"config":{"baseURL":"http://what.ever","method":"get","restData":"[REDACTED]","url":"/"},"message":"Request failed with status code 401","name":"Error","originalRequest":{"baseURL":"http://what.ever","headers":{},"transitional":{"clarifyTimeoutError":true},"url":"/","withCredentials":false},"request":"[REDACTED]","response":{"config":{"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340295621,"retries":3,"retryCount":0,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://what.ever","env":{},"headers":{},"maxBodyLength":-1,"maxContentLength":-1,"method":"get","timeout":65000,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"data":{},"headers":{"content-type":"application/json"},"request":{"responseURL":"/"},"status":401},"status":401,"statusCode":401}} 2025-05-15T20:18:15.622Z - warn: Received HTTP 401 for request. Attempting to retrieve a new token. - {"component":"BaseRequests"} 2025-05-15T20:18:15.623Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","error":{"cause":{},"config":{"baseURL":"http://what.ever","method":"get","restData":"[REDACTED]","url":"/"},"message":"Request failed with status code 401","name":"Error","originalRequest":{"baseURL":"http://what.ever","headers":{"Authorization":"Bearer fake-token"},"transitional":{"clarifyTimeoutError":true},"url":"/","withCredentials":false},"request":"[REDACTED]","response":{"config":{"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340295622,"retries":3,"retryCount":0,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://what.ever","env":{},"headers":{"Authorization":"Bearer fake-token"},"maxBodyLength":-1,"maxContentLength":-1,"method":"get","timeout":65000,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"data":{},"headers":{"content-type":"application/json"},"request":{"responseURL":"/"},"status":401},"status":401,"statusCode":401}} 2025-05-15T20:18:15.625Z - warn: Received HTTP 401 for request. Attempting to retrieve a new token. - {"component":"BaseRequests"} 2025-05-15T20:18:15.626Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","error":{"cause":{},"config":{"baseURL":"http://what.ever","method":"get","restData":"[REDACTED]","url":"/"},"message":"Request failed with status code 401","name":"Error","originalRequest":{"baseURL":"http://what.ever","headers":{"Authorization":"Bearer fake-token"},"transitional":{"clarifyTimeoutError":true},"url":"/","withCredentials":false},"request":"[REDACTED]","response":{"config":{"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340295626,"retries":3,"retryCount":0,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://what.ever","env":{},"headers":{"Authorization":"Bearer fake-token"},"maxBodyLength":-1,"maxContentLength":-1,"method":"get","timeout":65000,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"data":{},"headers":{"content-type":"application/json"},"request":{"responseURL":"/"},"status":401},"status":401,"statusCode":401}} 2025-05-15T20:18:15.627Z - warn: Received HTTP 401 for request. Attempting to retrieve a new token. - {"component":"BaseRequests"} 2025-05-15T20:18:15.627Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","error":{"cause":{},"config":{"baseURL":"http://what.ever","method":"get","restData":"[REDACTED]","url":"/"},"message":"Request failed with status code 401","name":"Error","originalRequest":{"baseURL":"http://what.ever","headers":{"Authorization":"Bearer fake-token"},"transitional":{"clarifyTimeoutError":true},"url":"/","withCredentials":false},"request":"[REDACTED]","response":{"config":{"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340295627,"retries":3,"retryCount":0,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://what.ever","env":{},"headers":{"Authorization":"Bearer fake-token"},"maxBodyLength":-1,"maxContentLength":-1,"method":"get","timeout":65000,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"data":{},"headers":{"content-type":"application/json"},"request":{"responseURL":"/"},"status":401},"status":401,"statusCode":401}} 2025-05-15T20:18:15.628Z - warn: Received HTTP 401 for request. Attempting to retrieve a new token. - {"component":"BaseRequests"} 2025-05-15T20:18:15.629Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","error":{"cause":{},"config":{"baseURL":"http://what.ever","method":"get","restData":"[REDACTED]","url":"/"},"message":"Request failed with status code 401","name":"Error","originalRequest":{"baseURL":"http://what.ever","headers":{"Authorization":"Bearer fake-token"},"transitional":{"clarifyTimeoutError":true},"url":"/","withCredentials":false},"request":"[REDACTED]","response":{"config":{"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340295628,"retries":3,"retryCount":0,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://what.ever","env":{},"headers":{"Authorization":"Bearer fake-token"},"maxBodyLength":-1,"maxContentLength":-1,"method":"get","timeout":65000,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"data":{},"headers":{"content-type":"application/json"},"request":{"responseURL":"/"},"status":401},"status":401,"statusCode":401}} 2025-05-15T20:18:15.629Z - warn: Received HTTP 401 for request. Attempting to retrieve a new token. - {"component":"BaseRequests"} 2025-05-15T20:18:15.630Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","error":{"cause":{},"config":{"baseURL":"http://what.ever","method":"get","restData":"[REDACTED]","url":"/"},"message":"Request failed with status code 401","name":"Error","originalRequest":{"baseURL":"http://what.ever","headers":{"Authorization":"Bearer fake-token"},"transitional":{"clarifyTimeoutError":true},"url":"/","withCredentials":false},"request":"[REDACTED]","response":{"config":{"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340295629,"retries":3,"retryCount":0,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://what.ever","env":{},"headers":{"Authorization":"Bearer fake-token"},"maxBodyLength":-1,"maxContentLength":-1,"method":"get","timeout":65000,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"data":{},"headers":{"content-type":"application/json"},"request":{"responseURL":"/"},"status":401},"status":401,"statusCode":401}} 2025-05-15T20:18:15.631Z - warn: Error attempting request - {"component":"BaseRequests","err":{"config":{"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340295629,"retries":3,"retryCount":0,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://what.ever","env":{},"headers":{"Authorization":"Bearer fake-token"},"maxBodyLength":-1,"maxContentLength":-1,"method":"get","timeout":65000,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"message":"Request failed with status code 401","name":"Error","stack":"Error: Request failed with status code 401\n at Function.Object..AxiosError.from (/home/circleci/project/node_modules/axios/lib/core/AxiosError.js:92:14)\n at createAxiosError (/home/circleci/project/node_modules/axios-mock-adapter/src/utils.js:161:29)\n at Object.settle (/home/circleci/project/node_modules/axios-mock-adapter/src/utils.js:150:11)\n at Axios.request (/home/circleci/project/node_modules/axios/lib/core/Axios.js:45:41)\n at AxiosHttpRequester.sendRequest (/home/circleci/project/src/lib/httpRequester/AxiosHttpRequester.js:79:34)\n at Object. (/home/circleci/project/test/unit/lib/requests/baseRequests.test.js:110:9)","status":401},"opts":{"agent":"[REDACTED]","headers":{"Authorization":"Bearer fake-token"},"uri":"http://what.ever"}} (node:1980) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 uncaughtException listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit  PASS  test/unit/lib/requests/baseRequests.test.js BaseRequests wso2 authorisation ✓ should not retry requests when not configured to do so (120 ms) ✓ should retry requests once when configured to do so (8 ms) ✓ should retry requests multiple times when configured to do so (13 ms) BaseRequests ✓ returns original request details for GET calls when response type is mojaloop (2 ms) ✓ returns original request details for DELETE calls when response type is mojaloop (2 ms) ✓ returns original request details for POST calls when response type is mojaloop (2 ms) ✓ returns original request details for PUT calls when response type is mojaloop (2 ms) ✓ returns original request details for PATCH calls when response type is mojaloop (1 ms) ✓ constructs an apiTransformer upon construction (2 ms) ✓ transforms an FSPIOP POST request to an ISO20022 POST request when API type is ISO20022 (6 ms) ✓ transforms an FSPIOP PUT request to an ISO20022 PUT request when API type is ISO20022 (5 ms) ✓ transforms an FSPIOP PATCH request to an ISO20022 PATCH request when API type is ISO20022 (3 ms) 2025-05-15T20:18:15.861Z - error: Error validating JWS: Cannot validate JWS without a body - {"component":"JwsValidator","stack":"Error: Cannot validate JWS without a body\n at JwsValidator.validate (/home/circleci/project/src/lib/jws/jwsValidator.js:69:23)\n at validate (/home/circleci/project/test/unit/jws.test.js:91:23)\n at Object. (/home/circleci/project/node_modules/expect/build/toThrowMatchers.js:74:11)\n at Object.throwingMatcher [as toThrow] (/home/circleci/project/node_modules/expect/build/index.js:320:21)\n at toThrow (/home/circleci/project/test/unit/jws.test.js:95:30)\n at Object.testValidateSignedRequest (/home/circleci/project/test/unit/jws.test.js:238:9)\n at Promise.then.completed (/home/circleci/project/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise ()\n at callAsyncCircusFn (/home/circleci/project/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/home/circleci/project/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/home/circleci/project/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:121:9)\n at run (/home/circleci/project/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/home/circleci/project/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/home/circleci/project/node_modules/jest-runner/build/runTest.js:444:34)"} 2025-05-15T20:18:15.868Z - error: Error validating JWS: Cannot validate JWS without a body - {"component":"JwsValidator","stack":"Error: Cannot validate JWS without a body\n at JwsValidator.validate (/home/circleci/project/src/lib/jws/jwsValidator.js:69:23)\n at validate (/home/circleci/project/test/unit/jws.test.js:114:23)\n at Object. (/home/circleci/project/node_modules/expect/build/toThrowMatchers.js:74:11)\n at Object.throwingMatcher [as toThrow] (/home/circleci/project/node_modules/expect/build/index.js:320:21)\n at toThrow (/home/circleci/project/test/unit/jws.test.js:118:30)\n at Object.testValidateSignedRequestData (/home/circleci/project/test/unit/jws.test.js:245:9)\n at Promise.then.completed (/home/circleci/project/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise ()\n at callAsyncCircusFn (/home/circleci/project/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/home/circleci/project/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/home/circleci/project/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:121:9)\n at run (/home/circleci/project/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/home/circleci/project/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/home/circleci/project/node_modules/jest-runner/build/runTest.js:444:34)"} 2025-05-15T20:18:15.875Z - error: Error validating JWS: fspiop-uri, fspiop-http-method and fspiop-signature HTTP headers are all required for JWS. Only got {"fspiop-source":"mojaloop-sdk","fspiop-destination":"some-other-fsp","date":"2025-05-15T20:18:15.870Z","fspiop-http-method":"PUT","fspiop-uri":"/parties/MSISDN/12345678"} - {"component":"JwsValidator","stack":"Error: fspiop-uri, fspiop-http-method and fspiop-signature HTTP headers are all required for JWS. Only got {\"fspiop-source\":\"mojaloop-sdk\",\"fspiop-destination\":\"some-other-fsp\",\"date\":\"2025-05-15T20:18:15.870Z\",\"fspiop-http-method\":\"PUT\",\"fspiop-uri\":\"/parties/MSISDN/12345678\"}\n at JwsValidator.validate (/home/circleci/project/src/lib/jws/jwsValidator.js:85:23)\n at validate (/home/circleci/project/test/unit/jws.test.js:91:23)\n at Object. (/home/circleci/project/node_modules/expect/build/toThrowMatchers.js:74:11)\n at Object.throwingMatcher [as toThrow] (/home/circleci/project/node_modules/expect/build/index.js:320:21)\n at toThrow (/home/circleci/project/test/unit/jws.test.js:95:30)\n at Object.testValidateSignedRequest (/home/circleci/project/test/unit/jws.test.js:252:9)\n at Promise.then.completed (/home/circleci/project/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise ()\n at callAsyncCircusFn (/home/circleci/project/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/home/circleci/project/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/home/circleci/project/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:121:9)\n at run (/home/circleci/project/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/home/circleci/project/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/home/circleci/project/node_modules/jest-runner/build/runTest.js:444:34)"} 2025-05-15T20:18:15.882Z - error: Error validating JWS: fspiop-uri, fspiop-http-method and fspiop-signature HTTP headers are all required for JWS. Only got {"fspiop-source":"mojaloop-sdk","fspiop-destination":"some-other-fsp","date":"2025-05-15T20:18:15.877Z","fspiop-http-method":"PUT","fspiop-signature":"{\"signature\":\"WNH2yWxORlUytpmsrbq7iw_WSW1pEUnYjPSlrv1RxHnrsXMxV0RJ-sOQpEM2U6oQ083oySgIVAbgNKwAIIo70MHI21S8LvROOXCJ4J5YjLjMSobKo-VaYG-Yr8NwCED85yvePokeXfYxA14nWvJTl2S3OtzhbQA7Wdih8YTtao8iNQVL-EpnFPKfjoht0y1wA5IlIMeorAa2d9dNbW3n-SHT_2aEjfm9L8JcKf9uM7DaelMJLZm55rB7WpwSvWmbEWjRxCGw44rjNd-tTg5008HO-YyxHLjBLVoFT8nPsHhGGkNeuBXnLYDCnfEZR0Ys-bG6irLHqX0-TyPMDRuisA\",\"protectedHeader\":\"eyJhbGciOiJSUzI1NiIsIkZTUElPUC1VUkkiOiIvcGFydGllcy9NU0lTRE4vMTIzNDU2NzgiLCJGU1BJT1AtSFRUUC1NZXRob2QiOiJQVVQiLCJGU1BJT1AtU291cmNlIjoibW9qYWxvb3Atc2RrIiwiRlNQSU9QLURlc3RpbmF0aW9uIjoic29tZS1vdGhlci1mc3AiLCJEYXRlIjoiMjAyNS0wNS0xNVQyMDoxODoxNS44NzdaIn0\"}"} - {"component":"JwsValidator","stack":"Error: fspiop-uri, fspiop-http-method and fspiop-signature HTTP headers are all required for JWS. Only got {\"fspiop-source\":\"mojaloop-sdk\",\"fspiop-destination\":\"some-other-fsp\",\"date\":\"2025-05-15T20:18:15.877Z\",\"fspiop-http-method\":\"PUT\",\"fspiop-signature\":\"{\\\"signature\\\":\\\"WNH2yWxORlUytpmsrbq7iw_WSW1pEUnYjPSlrv1RxHnrsXMxV0RJ-sOQpEM2U6oQ083oySgIVAbgNKwAIIo70MHI21S8LvROOXCJ4J5YjLjMSobKo-VaYG-Yr8NwCED85yvePokeXfYxA14nWvJTl2S3OtzhbQA7Wdih8YTtao8iNQVL-EpnFPKfjoht0y1wA5IlIMeorAa2d9dNbW3n-SHT_2aEjfm9L8JcKf9uM7DaelMJLZm55rB7WpwSvWmbEWjRxCGw44rjNd-tTg5008HO-YyxHLjBLVoFT8nPsHhGGkNeuBXnLYDCnfEZR0Ys-bG6irLHqX0-TyPMDRuisA\\\",\\\"protectedHeader\\\":\\\"eyJhbGciOiJSUzI1NiIsIkZTUElPUC1VUkkiOiIvcGFydGllcy9NU0lTRE4vMTIzNDU2NzgiLCJGU1BJT1AtSFRUUC1NZXRob2QiOiJQVVQiLCJGU1BJT1AtU291cmNlIjoibW9qYWxvb3Atc2RrIiwiRlNQSU9QLURlc3RpbmF0aW9uIjoic29tZS1vdGhlci1mc3AiLCJEYXRlIjoiMjAyNS0wNS0xNVQyMDoxODoxNS44NzdaIn0\\\"}\"}\n at JwsValidator.validate (/home/circleci/project/src/lib/jws/jwsValidator.js:85:23)\n at validate (/home/circleci/project/test/unit/jws.test.js:91:23)\n at Object. (/home/circleci/project/node_modules/expect/build/toThrowMatchers.js:74:11)\n at Object.throwingMatcher [as toThrow] (/home/circleci/project/node_modules/expect/build/index.js:320:21)\n at toThrow (/home/circleci/project/test/unit/jws.test.js:95:30)\n at Object.testValidateSignedRequest (/home/circleci/project/test/unit/jws.test.js:259:9)\n at Promise.then.completed (/home/circleci/project/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise ()\n at callAsyncCircusFn (/home/circleci/project/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/home/circleci/project/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/home/circleci/project/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:121:9)\n at run (/home/circleci/project/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/home/circleci/project/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/home/circleci/project/node_modules/jest-runner/build/runTest.js:444:34)"} 2025-05-15T20:18:15.888Z - error: Error validating JWS: fspiop-uri, fspiop-http-method and fspiop-signature HTTP headers are all required for JWS. Only got {"fspiop-source":"mojaloop-sdk","fspiop-destination":"some-other-fsp","date":"2025-05-15T20:18:15.883Z","fspiop-uri":"/parties/MSISDN/12345678","fspiop-signature":"{\"signature\":\"MisilohRSjyv1KgygyMEYDx3PI3B22y2iFs34FxPQeqmtY3NOz1pP9eCzuhiCYffz5Tq8QESE2WAz1NzfYvfl8WNqNiFISYtvs-Bpjtvt6uWH8tyjFv0VKFXTP3VdQEwrRrJMW8pGeAsicZtNu4ki2aciX38rn67EBgidnUZzvF87sV6RHEwmvRJZC4RjfoXZq-DakHWbzLrhGbZXYzqfyJusjgH_lCzeQN_Iwu8qwLweFTJLHOh24VjC3ROZrFZtpXnXMjcC6DfFWUIoAivoImkVFAKLwD3Xz6HzYJIQzyA3oGhglLfE1VparN6cCBozU8XV4wZx5oCOVHLSI9ufw\",\"protectedHeader\":\"eyJhbGciOiJSUzI1NiIsIkZTUElPUC1VUkkiOiIvcGFydGllcy9NU0lTRE4vMTIzNDU2NzgiLCJGU1BJT1AtSFRUUC1NZXRob2QiOiJQVVQiLCJGU1BJT1AtU291cmNlIjoibW9qYWxvb3Atc2RrIiwiRlNQSU9QLURlc3RpbmF0aW9uIjoic29tZS1vdGhlci1mc3AiLCJEYXRlIjoiMjAyNS0wNS0xNVQyMDoxODoxNS44ODNaIn0\"}"} - {"component":"JwsValidator","stack":"Error: fspiop-uri, fspiop-http-method and fspiop-signature HTTP headers are all required for JWS. Only got {\"fspiop-source\":\"mojaloop-sdk\",\"fspiop-destination\":\"some-other-fsp\",\"date\":\"2025-05-15T20:18:15.883Z\",\"fspiop-uri\":\"/parties/MSISDN/12345678\",\"fspiop-signature\":\"{\\\"signature\\\":\\\"MisilohRSjyv1KgygyMEYDx3PI3B22y2iFs34FxPQeqmtY3NOz1pP9eCzuhiCYffz5Tq8QESE2WAz1NzfYvfl8WNqNiFISYtvs-Bpjtvt6uWH8tyjFv0VKFXTP3VdQEwrRrJMW8pGeAsicZtNu4ki2aciX38rn67EBgidnUZzvF87sV6RHEwmvRJZC4RjfoXZq-DakHWbzLrhGbZXYzqfyJusjgH_lCzeQN_Iwu8qwLweFTJLHOh24VjC3ROZrFZtpXnXMjcC6DfFWUIoAivoImkVFAKLwD3Xz6HzYJIQzyA3oGhglLfE1VparN6cCBozU8XV4wZx5oCOVHLSI9ufw\\\",\\\"protectedHeader\\\":\\\"eyJhbGciOiJSUzI1NiIsIkZTUElPUC1VUkkiOiIvcGFydGllcy9NU0lTRE4vMTIzNDU2NzgiLCJGU1BJT1AtSFRUUC1NZXRob2QiOiJQVVQiLCJGU1BJT1AtU291cmNlIjoibW9qYWxvb3Atc2RrIiwiRlNQSU9QLURlc3RpbmF0aW9uIjoic29tZS1vdGhlci1mc3AiLCJEYXRlIjoiMjAyNS0wNS0xNVQyMDoxODoxNS44ODNaIn0\\\"}\"}\n at JwsValidator.validate (/home/circleci/project/src/lib/jws/jwsValidator.js:85:23)\n at validate (/home/circleci/project/test/unit/jws.test.js:91:23)\n at Object. (/home/circleci/project/node_modules/expect/build/toThrowMatchers.js:74:11)\n at Object.throwingMatcher [as toThrow] (/home/circleci/project/node_modules/expect/build/index.js:320:21)\n at toThrow (/home/circleci/project/test/unit/jws.test.js:95:30)\n at Object.testValidateSignedRequest (/home/circleci/project/test/unit/jws.test.js:266:9)\n at Promise.then.completed (/home/circleci/project/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise ()\n at callAsyncCircusFn (/home/circleci/project/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/home/circleci/project/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/home/circleci/project/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:121:9)\n at run (/home/circleci/project/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/home/circleci/project/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/home/circleci/project/node_modules/jest-runner/build/runTest.js:444:34)"} 2025-05-15T20:18:15.895Z - error: Error validating JWS: invalid signature - {"component":"JwsValidator","stack":"JsonWebTokenError: invalid signature\n at /home/circleci/project/node_modules/jsonwebtoken/verify.js:171:19\n at getSecret (/home/circleci/project/node_modules/jsonwebtoken/verify.js:97:14)\n at Object..module.exports [as verify] (/home/circleci/project/node_modules/jsonwebtoken/verify.js:101:10)\n at JwsValidator.verify [as validate] (/home/circleci/project/src/lib/jws/jwsValidator.js:96:32)\n at validate (/home/circleci/project/test/unit/jws.test.js:91:23)\n at Object. (/home/circleci/project/node_modules/expect/build/toThrowMatchers.js:74:11)\n at Object.throwingMatcher [as toThrow] (/home/circleci/project/node_modules/expect/build/index.js:320:21)\n at toThrow (/home/circleci/project/test/unit/jws.test.js:95:30)\n at Object.testValidateSignedRequest (/home/circleci/project/test/unit/jws.test.js:273:9)\n at Promise.then.completed (/home/circleci/project/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise ()\n at callAsyncCircusFn (/home/circleci/project/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/home/circleci/project/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/home/circleci/project/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:121:9)\n at run (/home/circleci/project/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/home/circleci/project/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/home/circleci/project/node_modules/jest-runner/build/runTest.js:444:34)"} 2025-05-15T20:18:15.903Z - error: Error validating JWS: invalid signature - {"component":"JwsValidator","stack":"JsonWebTokenError: invalid signature\n at /home/circleci/project/node_modules/jsonwebtoken/verify.js:171:19\n at getSecret (/home/circleci/project/node_modules/jsonwebtoken/verify.js:97:14)\n at Object..module.exports [as verify] (/home/circleci/project/node_modules/jsonwebtoken/verify.js:101:10)\n at JwsValidator.verify [as validate] (/home/circleci/project/src/lib/jws/jwsValidator.js:96:32)\n at validate (/home/circleci/project/test/unit/jws.test.js:114:23)\n at Object. (/home/circleci/project/node_modules/expect/build/toThrowMatchers.js:74:11)\n at Object.throwingMatcher [as toThrow] (/home/circleci/project/node_modules/expect/build/index.js:320:21)\n at toThrow (/home/circleci/project/test/unit/jws.test.js:118:30)\n at Object.testValidateSignedRequestData (/home/circleci/project/test/unit/jws.test.js:279:9)\n at Promise.then.completed (/home/circleci/project/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise ()\n at callAsyncCircusFn (/home/circleci/project/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/home/circleci/project/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/home/circleci/project/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:121:9)\n at run (/home/circleci/project/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/home/circleci/project/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/home/circleci/project/node_modules/jest-runner/build/runTest.js:444:34)"} 2025-05-15T20:18:15.909Z - error: Error validating JWS: FSPIOP-Source HTTP header not in request headers. Unable to verify JWS - {"component":"JwsValidator","stack":"Error: FSPIOP-Source HTTP header not in request headers. Unable to verify JWS\n at JwsValidator.validate (/home/circleci/project/src/lib/jws/jwsValidator.js:74:23)\n at validate (/home/circleci/project/test/unit/jws.test.js:91:23)\n at Object. (/home/circleci/project/node_modules/expect/build/toThrowMatchers.js:74:11)\n at Object.throwingMatcher [as toThrow] (/home/circleci/project/node_modules/expect/build/index.js:320:21)\n at toThrow (/home/circleci/project/test/unit/jws.test.js:95:30)\n at Object.testValidateSignedRequest (/home/circleci/project/test/unit/jws.test.js:285:9)\n at Promise.then.completed (/home/circleci/project/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise ()\n at callAsyncCircusFn (/home/circleci/project/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/home/circleci/project/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/home/circleci/project/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:121:9)\n at run (/home/circleci/project/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/home/circleci/project/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/home/circleci/project/node_modules/jest-runner/build/runTest.js:444:34)"} 2025-05-15T20:18:15.915Z - error: Error validating JWS: fspiop-uri, fspiop-http-method and fspiop-signature HTTP headers are all required for JWS. Only got {"fspiop-source":"mojaloop-sdk","fspiop-destination":"some-other-fsp","date":"2025-05-15T20:18:15.910Z","fspiop-http-method":"PUT","fspiop-signature":"{\"signature\":\"a2OYEJ0FcdVmTy5BZ-0y95IbLtYIP55wramMgC1Fht70BtIsbV8E7FykXUDDJE_O5ItwUJs7c4_zLTdeyqhFtq7yL7Yb8cvlUSLP6tIzVbC9lEMQh5rorGEC254_5sFR6xldQJEofVDLXUniuqQErkx9lIQZF9URgOX8QMNMlrW2d8ISOLB7JNBt49PzTIoc88MOwAUYoj94eF3t30rGvFcHheGdMwGAiK7f3vVgSNFD1ul7b0wYvms1bPd8EhJZmV9twN6VqGej9DEjBOlQTpYS4iJGcTFWMlHjcbLJcJAQ1fAYfAuCFcw1SftdYfOAyq_gbGhL-udk3VX15UPsgA\",\"protectedHeader\":\"eyJhbGciOiJSUzI1NiIsIkZTUElPUC1VUkkiOiIvcGFydGllcy9NU0lTRE4vMTIzNDU2NzgiLCJGU1BJT1AtSFRUUC1NZXRob2QiOiJQVVQiLCJGU1BJT1AtU291cmNlIjoibW9qYWxvb3Atc2RrIiwiRlNQSU9QLURlc3RpbmF0aW9uIjoic29tZS1vdGhlci1mc3AiLCJEYXRlIjoiMjAyNS0wNS0xNVQyMDoxODoxNS45MTBaIn0\"}"} - {"component":"JwsValidator","stack":"Error: fspiop-uri, fspiop-http-method and fspiop-signature HTTP headers are all required for JWS. Only got {\"fspiop-source\":\"mojaloop-sdk\",\"fspiop-destination\":\"some-other-fsp\",\"date\":\"2025-05-15T20:18:15.910Z\",\"fspiop-http-method\":\"PUT\",\"fspiop-signature\":\"{\\\"signature\\\":\\\"a2OYEJ0FcdVmTy5BZ-0y95IbLtYIP55wramMgC1Fht70BtIsbV8E7FykXUDDJE_O5ItwUJs7c4_zLTdeyqhFtq7yL7Yb8cvlUSLP6tIzVbC9lEMQh5rorGEC254_5sFR6xldQJEofVDLXUniuqQErkx9lIQZF9URgOX8QMNMlrW2d8ISOLB7JNBt49PzTIoc88MOwAUYoj94eF3t30rGvFcHheGdMwGAiK7f3vVgSNFD1ul7b0wYvms1bPd8EhJZmV9twN6VqGej9DEjBOlQTpYS4iJGcTFWMlHjcbLJcJAQ1fAYfAuCFcw1SftdYfOAyq_gbGhL-udk3VX15UPsgA\\\",\\\"protectedHeader\\\":\\\"eyJhbGciOiJSUzI1NiIsIkZTUElPUC1VUkkiOiIvcGFydGllcy9NU0lTRE4vMTIzNDU2NzgiLCJGU1BJT1AtSFRUUC1NZXRob2QiOiJQVVQiLCJGU1BJT1AtU291cmNlIjoibW9qYWxvb3Atc2RrIiwiRlNQSU9QLURlc3RpbmF0aW9uIjoic29tZS1vdGhlci1mc3AiLCJEYXRlIjoiMjAyNS0wNS0xNVQyMDoxODoxNS45MTBaIn0\\\"}\"}\n at JwsValidator.validate (/home/circleci/project/src/lib/jws/jwsValidator.js:85:23)\n at validate (/home/circleci/project/test/unit/jws.test.js:91:23)\n at Object. (/home/circleci/project/node_modules/expect/build/toThrowMatchers.js:74:11)\n at Object.throwingMatcher [as toThrow] (/home/circleci/project/node_modules/expect/build/index.js:320:21)\n at toThrow (/home/circleci/project/test/unit/jws.test.js:95:30)\n at Object.testValidateSignedRequest (/home/circleci/project/test/unit/jws.test.js:292:9)\n at Promise.then.completed (/home/circleci/project/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise ()\n at callAsyncCircusFn (/home/circleci/project/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/home/circleci/project/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/home/circleci/project/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:121:9)\n at run (/home/circleci/project/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/home/circleci/project/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/home/circleci/project/node_modules/jest-runner/build/runTest.js:444:34)"} 2025-05-15T20:18:15.921Z - error: Error validating JWS: fspiop-uri, fspiop-http-method and fspiop-signature HTTP headers are all required for JWS. Only got {"fspiop-source":"mojaloop-sdk","fspiop-destination":"some-other-fsp","date":"2025-05-15T20:18:15.916Z","fspiop-uri":"/parties/MSISDN/12345678","fspiop-signature":"{\"signature\":\"s7-tzxS4WA8vTbR1ACdLLQ0wh_8rBkNeiG7BfQf_REvCcHqb0lArcHrmxdqJ6Bx_in3WS8kDiCJJ6ZMFZP6vf7Up4RPvscc46N0FFU0C9HdlhCzuppvoqbgcACmxhU8A7jIHtPGTAm3rZ73AVhmhpX1aBy5cJvXm-NeOu_mSNJAJEV6Kw5MPV8KfYzIzM4_0bIWakUTp9d5hPpG6904HFLc05GAK1FxkYrkJ1DC6vwDbjyu0TdueVvTSRfxvxglW4qn3I_mhF8fJrbkL2Z0zloiWmciIYsDmgHa8pIYDeAyRf3W7FRVvIzSgdimLN6ruO_mxXZ9zdEzOBEjPe5FD_A\",\"protectedHeader\":\"eyJhbGciOiJSUzI1NiIsIkZTUElPUC1VUkkiOiIvcGFydGllcy9NU0lTRE4vMTIzNDU2NzgiLCJGU1BJT1AtSFRUUC1NZXRob2QiOiJQVVQiLCJGU1BJT1AtU291cmNlIjoibW9qYWxvb3Atc2RrIiwiRlNQSU9QLURlc3RpbmF0aW9uIjoic29tZS1vdGhlci1mc3AiLCJEYXRlIjoiMjAyNS0wNS0xNVQyMDoxODoxNS45MTZaIn0\"}"} - {"component":"JwsValidator","stack":"Error: fspiop-uri, fspiop-http-method and fspiop-signature HTTP headers are all required for JWS. Only got {\"fspiop-source\":\"mojaloop-sdk\",\"fspiop-destination\":\"some-other-fsp\",\"date\":\"2025-05-15T20:18:15.916Z\",\"fspiop-uri\":\"/parties/MSISDN/12345678\",\"fspiop-signature\":\"{\\\"signature\\\":\\\"s7-tzxS4WA8vTbR1ACdLLQ0wh_8rBkNeiG7BfQf_REvCcHqb0lArcHrmxdqJ6Bx_in3WS8kDiCJJ6ZMFZP6vf7Up4RPvscc46N0FFU0C9HdlhCzuppvoqbgcACmxhU8A7jIHtPGTAm3rZ73AVhmhpX1aBy5cJvXm-NeOu_mSNJAJEV6Kw5MPV8KfYzIzM4_0bIWakUTp9d5hPpG6904HFLc05GAK1FxkYrkJ1DC6vwDbjyu0TdueVvTSRfxvxglW4qn3I_mhF8fJrbkL2Z0zloiWmciIYsDmgHa8pIYDeAyRf3W7FRVvIzSgdimLN6ruO_mxXZ9zdEzOBEjPe5FD_A\\\",\\\"protectedHeader\\\":\\\"eyJhbGciOiJSUzI1NiIsIkZTUElPUC1VUkkiOiIvcGFydGllcy9NU0lTRE4vMTIzNDU2NzgiLCJGU1BJT1AtSFRUUC1NZXRob2QiOiJQVVQiLCJGU1BJT1AtU291cmNlIjoibW9qYWxvb3Atc2RrIiwiRlNQSU9QLURlc3RpbmF0aW9uIjoic29tZS1vdGhlci1mc3AiLCJEYXRlIjoiMjAyNS0wNS0xNVQyMDoxODoxNS45MTZaIn0\\\"}\"}\n at JwsValidator.validate (/home/circleci/project/src/lib/jws/jwsValidator.js:85:23)\n at validate (/home/circleci/project/test/unit/jws.test.js:91:23)\n at Object. (/home/circleci/project/node_modules/expect/build/toThrowMatchers.js:74:11)\n at Object.throwingMatcher [as toThrow] (/home/circleci/project/node_modules/expect/build/index.js:320:21)\n at toThrow (/home/circleci/project/test/unit/jws.test.js:95:30)\n at Object.testValidateSignedRequest (/home/circleci/project/test/unit/jws.test.js:299:9)\n at Promise.then.completed (/home/circleci/project/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise ()\n at callAsyncCircusFn (/home/circleci/project/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/home/circleci/project/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/home/circleci/project/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:121:9)\n at run (/home/circleci/project/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/home/circleci/project/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/home/circleci/project/node_modules/jest-runner/build/runTest.js:444:34)"} 2025-05-15T20:18:15.956Z - error: Error validating JWS: HTTP FSPIOP-Destination header: fail does not match protected header FSPIOP-Destination value: some-other-fsp - {"component":"JwsValidator","stack":"Error: HTTP FSPIOP-Destination header: fail does not match protected header FSPIOP-Destination value: some-other-fsp\n at JwsValidator._validateProtectedHeader (/home/circleci/project/src/lib/jws/jwsValidator.js:179:19)\n at JwsValidator._validateProtectedHeader [as validate] (/home/circleci/project/src/lib/jws/jwsValidator.js:102:18)\n at validate (/home/circleci/project/test/unit/jws.test.js:91:23)\n at Object. (/home/circleci/project/node_modules/expect/build/toThrowMatchers.js:74:11)\n at Object.throwingMatcher [as toThrow] (/home/circleci/project/node_modules/expect/build/index.js:320:21)\n at toThrow (/home/circleci/project/test/unit/jws.test.js:95:30)\n at Object.testValidateSignedRequest (/home/circleci/project/test/unit/jws.test.js:306:9)\n at Promise.then.completed (/home/circleci/project/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise ()\n at callAsyncCircusFn (/home/circleci/project/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/home/circleci/project/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/home/circleci/project/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:121:9)\n at run (/home/circleci/project/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/home/circleci/project/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/home/circleci/project/node_modules/jest-runner/build/runTest.js:444:34)"} 2025-05-15T20:18:15.962Z - error: Error validating JWS: HTTP date header: 1985-01-01T00:00:00.000Z does not match protected header Date value: 2025-05-15T20:18:15.957Z - {"component":"JwsValidator","stack":"Error: HTTP date header: 1985-01-01T00:00:00.000Z does not match protected header Date value: 2025-05-15T20:18:15.957Z\n at JwsValidator._validateProtectedHeader (/home/circleci/project/src/lib/jws/jwsValidator.js:168:19)\n at JwsValidator._validateProtectedHeader [as validate] (/home/circleci/project/src/lib/jws/jwsValidator.js:102:18)\n at validate (/home/circleci/project/test/unit/jws.test.js:91:23)\n at Object. (/home/circleci/project/node_modules/expect/build/toThrowMatchers.js:74:11)\n at Object.throwingMatcher [as toThrow] (/home/circleci/project/node_modules/expect/build/index.js:320:21)\n at toThrow (/home/circleci/project/test/unit/jws.test.js:95:30)\n at Object.testValidateSignedRequest (/home/circleci/project/test/unit/jws.test.js:313:9)\n at Promise.then.completed (/home/circleci/project/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise ()\n at callAsyncCircusFn (/home/circleci/project/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/home/circleci/project/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/home/circleci/project/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:121:9)\n at run (/home/circleci/project/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/home/circleci/project/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/home/circleci/project/node_modules/jest-runner/build/runTest.js:444:34)"} 2025-05-15T20:18:15.970Z - error: Error validating JWS: FSPIOP-URI HTTP request header value: /parties/MSISDN/12345679 does not match protected header value: /parties/MSISDN/12345678 - {"component":"JwsValidator","stack":"Error: FSPIOP-URI HTTP request header value: /parties/MSISDN/12345679 does not match protected header value: /parties/MSISDN/12345678\n at JwsValidator._validateProtectedHeader (/home/circleci/project/src/lib/jws/jwsValidator.js:135:19)\n at JwsValidator._validateProtectedHeader [as validate] (/home/circleci/project/src/lib/jws/jwsValidator.js:102:18)\n at validate (/home/circleci/project/test/unit/jws.test.js:91:23)\n at Object. (/home/circleci/project/node_modules/expect/build/toThrowMatchers.js:74:11)\n at Object.throwingMatcher [as toThrow] (/home/circleci/project/node_modules/expect/build/index.js:320:21)\n at toThrow (/home/circleci/project/test/unit/jws.test.js:95:30)\n at Object.testValidateSignedRequest (/home/circleci/project/test/unit/jws.test.js:320:9)\n at Promise.then.completed (/home/circleci/project/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise ()\n at callAsyncCircusFn (/home/circleci/project/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/home/circleci/project/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/home/circleci/project/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:121:9)\n at run (/home/circleci/project/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/home/circleci/project/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/home/circleci/project/node_modules/jest-runner/build/runTest.js:444:34)"} 2025-05-15T20:18:15.976Z - error: Error validating JWS: JWS public key for 'unknownFsp' not available. Unable to verify JWS. Only have keys for: ["mojaloop-sdk"] - {"component":"JwsValidator","stack":"Error: JWS public key for 'unknownFsp' not available. Unable to verify JWS. Only have keys for: [\"mojaloop-sdk\"]\n at JwsValidator.validate (/home/circleci/project/src/lib/jws/jwsValidator.js:80:23)\n at validate (/home/circleci/project/test/unit/jws.test.js:91:23)\n at Object. (/home/circleci/project/node_modules/expect/build/toThrowMatchers.js:74:11)\n at Object.throwingMatcher [as toThrow] (/home/circleci/project/node_modules/expect/build/index.js:320:21)\n at toThrow (/home/circleci/project/test/unit/jws.test.js:95:30)\n at Object.testValidateSignedRequest (/home/circleci/project/test/unit/jws.test.js:327:9)\n at Promise.then.completed (/home/circleci/project/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise ()\n at callAsyncCircusFn (/home/circleci/project/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/home/circleci/project/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/home/circleci/project/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/home/circleci/project/node_modules/jest-circus/build/run.js:121:9)\n at run (/home/circleci/project/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/home/circleci/project/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/home/circleci/project/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/home/circleci/project/node_modules/jest-runner/build/runTest.js:444:34)"} (node:1980) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 uncaughtException listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit  PASS  test/unit/jws.test.js JWS ✓ Should generate valid JWS headers and signature for request with body (13 ms) ✓ Should generate valid JWS headers and signature for request with data (7 ms) ✓ getSignature Should return valid JWS signature for request with body (6 ms) ✓ getSignature Should return valid JWS signature for request with data (7 ms) ✓ Should throw when trying to sign with no body (20 ms) ✓ getSignature Should throw when trying to sign with no body (2 ms) ✓ getSignature Should throw when trying to sign with no body(data) (2 ms) ✓ Should throw when trying to sign with no body(data) (2 ms) ✓ Should throw when trying to sign with no uri (2 ms) ✓ getSignature Should throw when trying to sign with no uri (1 ms) ✓ Should throw when trying to sign with no url (1 ms) ✓ getSignature Should throw when trying to sign with no url (2 ms) ✓ Should throw when trying to validate with no body (9 ms) ✓ Should throw when trying to validate with no body(data) (6 ms) ✓ Should throw when trying to validate with no fspiop-signature header (7 ms) ✓ Should throw when trying to validate with no fspiop-uri header (6 ms) ✓ Should throw when trying to validate with no fspiop-http-method header (6 ms) ✓ Should throw when trying to validate with modified body (7 ms) ✓ Should throw when trying to validate with modified body(data) (7 ms) ✓ Should throw when trying to validate with missing fspiop-source header (7 ms) ✓ Should throw when trying to validate with missing fspiop-uri header (5 ms) ✓ Should throw when trying to validate with missing fspiop-http-method header (33 ms) ✓ Should throw when trying to validate with modified fspiop-destination header (7 ms) ✓ Should throw when trying to validate with modified date header (7 ms) ✓ Should throw when trying to validate with modified fspiop-uri (7 ms) ✓ should throw when trying to validate without matching public key (6 ms) 2025-05-15T20:18:16.189Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","context":"SDK_SC","error":{"cause":{},"config":{"baseURL":"http://arbitrary-uri","method":"get","restData":"[REDACTED]","url":"/"},"message":"Request failed with status code 404","name":"Error","originalRequest":{"baseURL":"http://arbitrary-uri","responseType":"text","transitional":{"clarifyTimeoutError":true},"url":"/","withCredentials":false},"request":"[REDACTED]","response":{"config":{"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340296111,"retries":3,"retryCount":0,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://arbitrary-uri","env":{},"headers":{},"maxBodyLength":-1,"maxContentLength":-1,"method":"get","responseType":"text","timeout":65000,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"headers":{},"request":{"responseURL":"/"},"status":404},"status":404,"statusCode":404}} 2025-05-15T20:18:16.225Z - info: max retries exceeded for HTTP request! Request failed with status code 500 - {"context":"SDK_SC","errorResponseData":{"message":"error"},"retryCount":3,"status":500} 2025-05-15T20:18:16.226Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","context":"SDK_SC","error":{"cause":{},"config":{"baseURL":"http://localhost:1234","method":"get","restData":"[REDACTED]","url":"/error"},"message":"Request failed with status code 500","name":"Error","originalRequest":{"baseURL":"http://localhost:1234","transitional":{"clarifyTimeoutError":true},"url":"/error","withCredentials":false},"request":"[REDACTED]","response":{"config":{"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340296225,"retries":3,"retryCount":3,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://localhost:1234","env":{},"headers":{},"maxBodyLength":-1,"maxContentLength":-1,"method":"get","timeout":64970,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/error","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"data":{"message":"error"},"headers":{"content-type":"application/json"},"request":{"responseURL":"/error"},"status":500},"status":500,"statusCode":500}} 2025-05-15T20:18:16.227Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","context":"SDK_SC","error":{"contentType":"text/html","originalRequest":{"baseURL":"http://localhost:1234","headers":{},"method":"GET","responseType":"json","transitional":{"clarifyTimeoutError":true},"url":"/content","withCredentials":false},"request":"[REDACTED]","status":200,"statusCode":200}} 2025-05-15T20:18:16.276Z - info: max retries exceeded for HTTP request! Network Error - {"context":"SDK_SC","retryCount":3} 2025-05-15T20:18:16.277Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","context":"SDK_SC","error":{"cause":{},"config":{"baseURL":"http://localhost:1234","method":"get","restData":"[REDACTED]","url":"/error"},"message":"Network Error","name":"Error","originalRequest":{"baseURL":"http://localhost:1234","transitional":{"clarifyTimeoutError":true},"url":"/error","withCredentials":false},"request":"[REDACTED]"}} 2025-05-15T20:18:16.290Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","context":"SDK_SC","error":{"cause":{},"config":{"baseURL":"http://localhost:1234","method":"get","restData":"[REDACTED]","url":"/bad"},"message":"Request failed with status code 400","name":"Error","originalRequest":{"baseURL":"http://localhost:1234","transitional":{"clarifyTimeoutError":true},"url":"/bad","withCredentials":false},"request":"[REDACTED]","response":{"config":{"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340296290,"retries":3,"retryCount":0,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://localhost:1234","env":{},"headers":{},"maxBodyLength":-1,"maxContentLength":-1,"method":"get","timeout":65000,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/bad","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"headers":{},"request":{"responseURL":"/bad"},"status":400},"status":400,"statusCode":400}}  PASS  test/unit/lib/httpRequester/AxiosHttpRequester.test.js AxiosHttpRequester Test --> ✓ should create and instance of AxiosHttpRequester (1 ms) ✓ should pass default timeout to axios (2 ms) ✓ should use timeout per request (1 ms) ✓ should fail with statusCode 404, when uri is not registered in mockAxios (79 ms) ✓ should send mock GET request (1 ms) ✓ should throw error on any erroneous statusCode (34 ms) ✓ should have response JSON content-type header validation (1 ms) convertToAxiosOptions Tests --> ✓ should add http protocol, if no protocol in uri ✓ should NOT add http protocol, if uri has it ✓ should add http protocol, and define root url ✓ should create route url part with search and hash (1 ms) ✓ should set proper httpsAgent field ✓ should not set agent field, if it is missed in httpOpts (1 ms) ✓ should allow to override default timeout retry Tests --> ✓ should retry request on network error (12 ms) ✓ should fail with error on max retries exceed for an http request (35 ms) ✓ should retry on retryable server error (e.g. 503) (11 ms) ✓ should NOT retry on badRequest error (2 ms) ✓ should retry request on timeout (12 ms) ✓ should be able to override retry defaults using env vars (33 ms) 2025-05-15T20:18:16.987Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","error":{"cause":{},"config":{"baseURL":"http://www.example.com","method":"post","restData":"[REDACTED]","url":"/login?a=123&b=other%20param"},"message":"Request failed with status code 404","name":"Error","originalRequest":{"baseURL":"http://www.example.com","body":"\"some body\"","data":"some body","headers":{"accept":"application/vnd.interoperability.custom+json;version=1","content-type":"application/vnd.interoperability.custom+json;version=1.0","date":"Thu, 15 May 2025 20:18:16 GMT"},"httpAgent":"[REDACTED]","method":"POST","responseType":"stream","transitional":{"clarifyTimeoutError":true},"url":"/login?a=123&b=other%20param","withCredentials":false},"request":"[REDACTED]","response":{"config":{"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340296919,"retries":3,"retryCount":0,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://www.example.com","data":"some body","env":{},"headers":{"accept":"application/vnd.interoperability.custom+json;version=1","content-type":"application/vnd.interoperability.custom+json;version=1.0","date":"Thu, 15 May 2025 20:18:16 GMT"},"httpAgent":{"_events":{},"_eventsCount":2,"defaultPort":80,"freeSockets":{},"keepAlive":true,"keepAliveMsecs":1000,"maxFreeSockets":256,"maxSockets":null,"maxTotalSockets":null,"options":{"keepAlive":true,"noDelay":true,"path":null,"scheduling":"lifo","timeout":5000},"protocol":"http:","requests":{},"scheduling":"lifo","sockets":{},"totalSocketCount":0},"maxBodyLength":-1,"maxContentLength":-1,"method":"post","responseType":"stream","timeout":65000,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/login?a=123&b=other%20param","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"data":{"_events":{},"_readableState":{"awaitDrainWriters":null,"buffer":[],"bufferIndex":0,"highWaterMark":16,"length":0,"pipes":[]}},"headers":{"content-type":"application/json","x-other-header":"other-content"},"request":{"responseURL":"/login?a=123&b=other%20param"},"status":404},"status":404,"statusCode":404}} 2025-05-15T20:18:16.988Z - warn: Error attempting request - {"component":"MojaloopRequests","err":{"config":{"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340296919,"retries":3,"retryCount":0,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://www.example.com","data":"some body","env":{},"headers":{"accept":"application/vnd.interoperability.custom+json;version=1","content-type":"application/vnd.interoperability.custom+json;version=1.0","date":"Thu, 15 May 2025 20:18:16 GMT"},"httpAgent":{"_events":{},"_eventsCount":2,"defaultPort":80,"freeSockets":{},"keepAlive":true,"keepAliveMsecs":1000,"maxFreeSockets":256,"maxSockets":null,"maxTotalSockets":null,"options":{"keepAlive":true,"noDelay":true,"path":null,"scheduling":"lifo","timeout":5000},"protocol":"http:","requests":{},"scheduling":"lifo","sockets":{},"totalSocketCount":0},"maxBodyLength":-1,"maxContentLength":-1,"method":"post","responseType":"stream","timeout":65000,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/login?a=123&b=other%20param","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"message":"Request failed with status code 404","name":"Error","stack":"Error: Request failed with status code 404\n at Function.Object..AxiosError.from (/home/circleci/project/node_modules/axios/lib/core/AxiosError.js:92:14)\n at createAxiosError (/home/circleci/project/node_modules/axios-mock-adapter/src/utils.js:161:29)\n at Object.settle (/home/circleci/project/node_modules/axios-mock-adapter/src/utils.js:150:11)\n at processTicksAndRejections (node:internal/process/task_queues:105:5)\n at Axios.request (/home/circleci/project/node_modules/axios/lib/core/Axios.js:45:41)\n at processTicksAndRejections (node:internal/process/task_queues:105:5)\n at AxiosHttpRequester.sendRequest (/home/circleci/project/src/lib/httpRequester/AxiosHttpRequester.js:79:34)\n at executeRequest (/home/circleci/project/test/unit/lib/requests/request.test.js:99:22)\n at Object. (/home/circleci/project/test/unit/lib/requests/request.test.js:209:22)","status":404},"opts":{"agent":"[REDACTED]","body":"some body","headers":{"accept":"application/vnd.interoperability.custom+json;version=1","content-type":"application/vnd.interoperability.custom+json;version=1.0","date":"Thu, 15 May 2025 20:18:16 GMT"},"method":"POST","qs":{"a":123,"b":"other param"},"responseType":"stream","uri":"http://www.example.com/login"}} 2025-05-15T20:18:16.991Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","error":{"cause":{},"config":{"baseURL":"http://www.example.com","method":"post","restData":"[REDACTED]","url":"/login?a=123&b=other%20param"},"message":"Request failed with status code 404","name":"Error","originalRequest":{"baseURL":"http://www.example.com","body":"\"some body\"","data":"some body","headers":{"accept":"application/vnd.interoperability.custom+json;version=1","content-type":"application/vnd.interoperability.custom+json;version=1.0","date":"Thu, 15 May 2025 20:18:16 GMT"},"httpAgent":"[REDACTED]","method":"POST","transitional":{"clarifyTimeoutError":true},"url":"/login?a=123&b=other%20param","withCredentials":false},"request":"[REDACTED]","response":{"config":{"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340296990,"retries":3,"retryCount":0,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://www.example.com","data":"some body","env":{},"headers":{"accept":"application/vnd.interoperability.custom+json;version=1","content-type":"application/vnd.interoperability.custom+json;version=1.0","date":"Thu, 15 May 2025 20:18:16 GMT"},"httpAgent":{"_events":{},"_eventsCount":2,"defaultPort":80,"freeSockets":{},"keepAlive":true,"keepAliveMsecs":1000,"maxFreeSockets":256,"maxSockets":null,"maxTotalSockets":null,"options":{"keepAlive":true,"noDelay":true,"path":null,"scheduling":"lifo","timeout":5000},"protocol":"http:","requests":{},"scheduling":"lifo","sockets":{},"totalSocketCount":0},"maxBodyLength":-1,"maxContentLength":-1,"method":"post","timeout":65000,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/login?a=123&b=other%20param","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"data":{"error":"Error Message"},"headers":{"content-type":"application/json","x-other-header":"other-content"},"request":{"responseURL":"/login?a=123&b=other%20param"},"status":404},"status":404,"statusCode":404}} 2025-05-15T20:18:16.991Z - warn: Error attempting request - {"component":"MojaloopRequests","err":{"config":{"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340296990,"retries":3,"retryCount":0,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://www.example.com","data":"some body","env":{},"headers":{"accept":"application/vnd.interoperability.custom+json;version=1","content-type":"application/vnd.interoperability.custom+json;version=1.0","date":"Thu, 15 May 2025 20:18:16 GMT"},"httpAgent":{"_events":{},"_eventsCount":2,"defaultPort":80,"freeSockets":{},"keepAlive":true,"keepAliveMsecs":1000,"maxFreeSockets":256,"maxSockets":null,"maxTotalSockets":null,"options":{"keepAlive":true,"noDelay":true,"path":null,"scheduling":"lifo","timeout":5000},"protocol":"http:","requests":{},"scheduling":"lifo","sockets":{},"totalSocketCount":0},"maxBodyLength":-1,"maxContentLength":-1,"method":"post","timeout":65000,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/login?a=123&b=other%20param","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"message":"Request failed with status code 404","name":"Error","stack":"Error: Request failed with status code 404\n at Function.Object..AxiosError.from (/home/circleci/project/node_modules/axios/lib/core/AxiosError.js:92:14)\n at createAxiosError (/home/circleci/project/node_modules/axios-mock-adapter/src/utils.js:161:29)\n at Object.settle (/home/circleci/project/node_modules/axios-mock-adapter/src/utils.js:150:11)\n at processTicksAndRejections (node:internal/process/task_queues:105:5)\n at Axios.request (/home/circleci/project/node_modules/axios/lib/core/Axios.js:45:41)\n at processTicksAndRejections (node:internal/process/task_queues:105:5)\n at AxiosHttpRequester.sendRequest (/home/circleci/project/src/lib/httpRequester/AxiosHttpRequester.js:79:34)\n at executeRequest (/home/circleci/project/test/unit/lib/requests/request.test.js:99:22)\n at Object. (/home/circleci/project/test/unit/lib/requests/request.test.js:239:22)","status":404},"opts":{"agent":"[REDACTED]","body":"some body","headers":{"accept":"application/vnd.interoperability.custom+json;version=1","content-type":"application/vnd.interoperability.custom+json;version=1.0","date":"Thu, 15 May 2025 20:18:16 GMT"},"method":"POST","qs":{"a":123,"b":"other param"},"uri":"http://www.example.com/login"}}  PASS  test/unit/lib/requests/request.test.js mojaloopRequests Tests ✓ should send correct request and receive correct JSON response (3 ms) ✓ should send correct request and receive stream response (2 ms) ✓ should send correct request and receive binary stream response (138 ms) ✓ should receive 404 error in stream (71 ms) ✓ should receive 404 error (2 ms) (node:1980) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 uncaughtException listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit  PASS  test/unit/lib/ilp/IlpV1.test.js IlpV1 Tests --> ✓ should have getter "version" (v1) (1 ms) ✓ Should generate ILP v1 components for a quote response given a quote request and partial response (2 ms) ✓ should generate ILP v1 components for fxQuote request and partial response (1 ms) ✓ deserializes the ILP packet into a valid transaction object (2 ms) ✓ ILP fulfilment should match condition (1 ms) ✓ should generate fulfilment, ilpPacket and condition using shared method "getResponseIlp" (1 ms) ✓ should calculate fulfilment based on ilpPacket sting (1 ms) Ilp Packet Serialize tests --> ✓ should throw error if amount as empty string in ilp packet (6 ms) ✓ should be able to use ILP_AMOUNT_FOR_FX ("0") as amount in ilp packet (1 ms) ✓ should create ilp packet for fxQuote (1 ms) Ilp Packet Decoding and Validation ✓ Should decode the IlpPacket (2 ms) ✓ Should generate transaction object from an Ilp packet (2 ms) ✓ Should validate the transfer request against the decoded Ilp packet (1 ms) ✓ Should fail the validation if the data in transfer request is changed (1 ms) 2025-05-15T20:18:29.705Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","error":{"cause":{},"config":{"baseURL":"http://token-endpoint.com","method":"post","restData":"[REDACTED]","url":"/v2"},"message":"Request failed with status code 401","name":"Error","originalRequest":{"baseURL":"http://token-endpoint.com","body":"\"grant_type=client_credentials\"","data":"grant_type=client_credentials","headers":{"Authorization":"Basic Y2xpZW50LWtleTpjbGllbnQtc2VjcmV0","Content-Type":"application/x-www-form-urlencoded"},"httpAgent":"[REDACTED]","method":"POST","transitional":{"clarifyTimeoutError":true},"url":"/v2","withCredentials":false},"request":"[REDACTED]","response":{"config":{"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340309630,"retries":3,"retryCount":0,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://token-endpoint.com","data":"grant_type=client_credentials","env":{},"headers":{"Authorization":"Basic Y2xpZW50LWtleTpjbGllbnQtc2VjcmV0","Content-Type":"application/x-www-form-urlencoded"},"httpAgent":{"_events":{},"_eventsCount":2,"defaultPort":80,"freeSockets":{},"keepAlive":false,"keepAliveMsecs":1000,"maxFreeSockets":256,"maxSockets":null,"maxTotalSockets":null,"options":{"noDelay":true,"path":null},"protocol":"http:","requests":{},"scheduling":"lifo","sockets":{},"totalSocketCount":0},"maxBodyLength":-1,"maxContentLength":-1,"method":"post","timeout":65000,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/v2","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"data":null,"headers":{"content-type":"application/json"},"request":{"responseURL":"/v2"},"status":401},"status":401,"statusCode":401}} 2025-05-15T20:18:29.706Z - error: Error performing WSO2 token refresh: Unexpected response code 401 received from WSO2 token request. Retry in 10s - {"component":"WSO2Auth"}  PASS  test/unit/WSO2Auth.test.js (12.593 s) WSO2Auth ✓ should return static token when static token was provided (2 ms) ✓ should return new token when token API info was provided (3 ms) ✓ should refresh token using user provided interval value (3103 ms) ✓ should refresh token using user provided interval value when token expiry is negative (3103 ms) ✓ should refresh token using user provided interval value when token expiry is string (3103 ms) ✓ should refresh token using OAuth2 token expiry value (3102 ms) ✓ should emit error when receiving a 401 from WSO2 (78 ms) 2025-05-15T20:18:30.334Z - info: max retries exceeded for HTTP request! connect ECONNREFUSED 127.0.0.1:9999 - {"code":"ECONNREFUSED","component":"MojaloopRequests","retryCount":3} 2025-05-15T20:18:30.411Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","error":{"address":"127.0.0.1","cause":{"address":"127.0.0.1","code":"ECONNREFUSED","errno":-111,"port":9999,"syscall":"connect"},"code":"ECONNREFUSED","config":{"baseURL":"http://127.0.0.1:9999","method":"post","restData":"[REDACTED]","url":"/test"},"errno":-111,"message":"connect ECONNREFUSED 127.0.0.1:9999","name":"Error","originalRequest":{"baseURL":"http://127.0.0.1:9999","body":"{\"a\":1}","data":{"a":1},"headers":{"accept":"application/vnd.interoperability.parties+json;version=1","content-type":"application/vnd.interoperability.parties+json;version=1.0","date":"Thu, 15 May 2025 20:18:30 GMT","fspiop-destination":"42"},"httpAgent":"[REDACTED]","method":"POST","transitional":{"clarifyTimeoutError":true},"url":"/test","withCredentials":false},"port":9999,"request":"[REDACTED]","syscall":"connect"}} 2025-05-15T20:18:30.412Z - warn: Error attempting request - {"component":"MojaloopRequests","err":{"code":"ECONNREFUSED","config":{"adapter":["xhr","http","fetch"],"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340310332,"retries":3,"retryCount":3,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://127.0.0.1:9999","data":"{\"a\":1}","env":{},"headers":{"Accept-Encoding":"gzip, compress, deflate, br","Content-Length":"7","User-Agent":"axios/1.9.0","accept":"application/vnd.interoperability.parties+json;version=1","content-type":"application/vnd.interoperability.parties+json;version=1.0","date":"Thu, 15 May 2025 20:18:30 GMT","fspiop-destination":"42"},"httpAgent":{"_events":{},"_eventsCount":2,"defaultPort":80,"freeSockets":{},"keepAlive":true,"keepAliveMsecs":1000,"maxFreeSockets":256,"maxSockets":null,"maxTotalSockets":null,"options":{"keepAlive":true,"noDelay":true,"path":null,"scheduling":"lifo","timeout":5000},"protocol":"http:","requests":{},"scheduling":"lifo","sockets":{"127.0.0.1:9999:":[{"_closeAfterHandlingError":false,"_events":{"close":[null,null,null],"connect":[null,null,null],"timeout":[null,null,null]},"_eventsCount":8,"_hadError":true,"_host":null,"_httpMessage":{"_closed":false,"_contentLength":7,"_defaultKeepAlive":true,"_ended":false,"_events":{},"_eventsCount":7,"_hasBody":true,"_header":"POST /test HTTP/1.1\r\ncontent-type: application/vnd.interoperability.parties+json;version=1.0\r\ndate: Thu, 15 May 2025 20:18:30 GMT\r\nfspiop-destination: 42\r\naccept: application/vnd.interoperability.parties+json;version=1\r\nUser-Agent: axios/1.9.0\r\nContent-Length: 7\r\nAccept-Encoding: gzip, compress, deflate, br\r\nHost: 127.0.0.1:9999\r\nConnection: keep-alive\r\n\r\n","_headerSent":true,"_keepAliveTimeout":0,"_last":false,"_redirectable":{"_currentUrl":"http://127.0.0.1:9999/test","_ended":false,"_ending":true,"_events":{"socket":[null,null]},"_eventsCount":3,"_options":{"agents":{},"beforeRedirects":{},"headers":{"Accept-Encoding":"gzip, compress, deflate, br","Content-Length":"7","User-Agent":"axios/1.9.0","accept":"application/vnd.interoperability.parties+json;version=1","content-type":"application/vnd.interoperability.parties+json;version=1.0","date":"Thu, 15 May 2025 20:18:30 GMT","fspiop-destination":"42"},"hostname":"127.0.0.1","maxBodyLength":null,"maxRedirects":21,"method":"POST","nativeProtocols":{"http:":{"METHODS":["ACL","BIND","CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LINK","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCALENDAR","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","QUERY","REBIND","REPORT","SEARCH","SOURCE","SUBSCRIBE","TRACE","UNBIND","UNLINK","UNLOCK","UNSUBSCRIBE"],"STATUS_CODES":{"100":"Continue","101":"Switching Protocols","102":"Processing","103":"Early Hints","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I'm a Teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Too Early","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"},"maxHeaderSize":16384},"https:":{"globalAgent":{"_events":{},"_eventsCount":2,"_sessionCache":{"list":[],"map":{}},"defaultPort":443,"freeSockets":{},"keepAlive":true,"keepAliveMsecs":1000,"maxCachedSessions":100,"maxFreeSockets":256,"maxSockets":null,"maxTotalSockets":null,"options":{"keepAlive":true,"noDelay":true,"path":null,"scheduling":"lifo","timeout":5000},"protocol":"https:","requests":{},"scheduling":"lifo","sockets":{},"totalSocketCount":0}}},"path":"/test","pathname":"/test","port":"9999","protocol":"http:"},"_redirectCount":0,"_redirects":[],"_requestBodyBuffers":[{"data":{"data":[123,34,97,34,58,49,125],"type":"Buffer"}}],"_requestBodyLength":7,"_timeout":null,"_writableState":{"bufferedIndex":0,"corked":0,"highWaterMark":65536,"length":0,"pendingcb":0,"writelen":0}},"_removedConnection":false,"_removedContLen":false,"_removedTE":false,"_trailer":"","aborted":false,"chunkedEncoding":false,"destroyed":false,"finished":false,"host":"127.0.0.1","maxHeadersCount":null,"maxRequestsOnConnectionReached":false,"method":"POST","outputData":[],"outputSize":0,"parser":null,"path":"/test","protocol":"http:","res":null,"reusedSocket":false,"sendDate":false,"shouldKeepAlive":true,"strictContentLength":false,"upgradeOrConnect":false,"useChunkedEncodingByDefault":true,"writable":true},"_parent":null,"_pendingData":[{"chunk":"POST /test HTTP/1.1\r\ncontent-type: application/vnd.interoperability.parties+json;version=1.0\r\ndate: Thu, 15 May 2025 20:18:30 GMT\r\nfspiop-destination: 42\r\naccept: application/vnd.interoperability.parties+json;version=1\r\nUser-Agent: axios/1.9.0\r\nContent-Length: 7\r\nAccept-Encoding: gzip, compress, deflate, br\r\nHost: 127.0.0.1:9999\r\nConnection: keep-alive\r\n\r\n","encoding":"latin1"},{"chunk":{"data":[123,34,97,34,58,49,125],"type":"Buffer"},"encoding":"buffer"}],"_pendingEncoding":"","_readableState":{"awaitDrainWriters":null,"buffer":[],"bufferIndex":0,"highWaterMark":65536,"length":0,"pipes":[]},"_server":null,"_sockname":null,"_writableState":{"bufferedIndex":0,"corked":0,"highWaterMark":65536,"length":365,"pendingcb":1,"writelen":365},"allowHalfOpen":false,"connecting":false,"parser":null,"server":null,"timeout":64956}]},"totalSocketCount":1},"maxBodyLength":-1,"maxContentLength":-1,"method":"post","timeout":64956,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/test","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"message":"connect ECONNREFUSED 127.0.0.1:9999","name":"Error","stack":"Error: connect ECONNREFUSED 127.0.0.1:9999\n at Function.Object..AxiosError.from (/home/circleci/project/node_modules/axios/lib/core/AxiosError.js:92:14)\n at RedirectableRequest.handleRequestError (/home/circleci/project/node_modules/axios/lib/adapters/http.js:620:25)\n at RedirectableRequest.emit (node:events:530:35)\n at ClientRequest.eventHandlers. (/home/circleci/project/node_modules/follow-redirects/index.js:49:24)\n at ClientRequest.emit (node:events:518:28)\n at emitErrorEvent (node:_http_client:104:11)\n at Socket.socketErrorListener (node:_http_client:518:5)\n at Socket.emit (node:events:518:28)\n at emitErrorNT (node:internal/streams/destroy:170:8)\n at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n at processTicksAndRejections (node:internal/process/task_queues:90:21)\n at Axios.request (/home/circleci/project/node_modules/axios/lib/core/Axios.js:45:41)\n at processTicksAndRejections (node:internal/process/task_queues:105:5)\n at Axios.request (/home/circleci/project/node_modules/axios/lib/core/Axios.js:40:14)\n at Axios.request (/home/circleci/project/node_modules/axios/lib/core/Axios.js:40:14)\n at Axios.request (/home/circleci/project/node_modules/axios/lib/core/Axios.js:40:14)\n at AxiosHttpRequester.sendRequest (/home/circleci/project/src/lib/httpRequester/AxiosHttpRequester.js:79:34)\n at primRequestSerializationTest (/home/circleci/project/test/unit/lib/requests/request-errors.test.js:70:9)\n at Object. (/home/circleci/project/test/unit/lib/requests/request-errors.test.js:79:17)"},"opts":{"agent":"[REDACTED]","body":{"a":1},"headers":{"accept":"application/vnd.interoperability.parties+json;version=1","content-type":"application/vnd.interoperability.parties+json;version=1.0","date":"Thu, 15 May 2025 20:18:30 GMT","fspiop-destination":"42"},"method":"POST","qs":{},"uri":"http://127.0.0.1:9999/test"}} 2025-05-15T20:18:30.453Z - info: max retries exceeded for HTTP request! connect ECONNREFUSED 127.0.0.1:9999 - {"code":"ECONNREFUSED","component":"MojaloopRequests","retryCount":3} 2025-05-15T20:18:30.454Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","error":{"address":"127.0.0.1","cause":{"address":"127.0.0.1","code":"ECONNREFUSED","errno":-111,"port":9999,"syscall":"connect"},"code":"ECONNREFUSED","config":{"baseURL":"http://127.0.0.1:9999","method":"put","restData":"[REDACTED]","url":"/test"},"errno":-111,"message":"connect ECONNREFUSED 127.0.0.1:9999","name":"Error","originalRequest":{"baseURL":"http://127.0.0.1:9999","body":"{\"a\":1}","data":{"a":1},"headers":{"content-type":"application/vnd.interoperability.parties+json;version=1.0","date":"Thu, 15 May 2025 20:18:30 GMT","fspiop-destination":"42"},"httpAgent":"[REDACTED]","method":"PUT","transitional":{"clarifyTimeoutError":true},"url":"/test","withCredentials":false},"port":9999,"request":"[REDACTED]","syscall":"connect"}} 2025-05-15T20:18:30.454Z - warn: Error attempting request - {"component":"MojaloopRequests","err":{"code":"ECONNREFUSED","config":{"adapter":["xhr","http","fetch"],"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340310451,"retries":3,"retryCount":3,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://127.0.0.1:9999","data":"{\"a\":1}","env":{},"headers":{"Accept-Encoding":"gzip, compress, deflate, br","Content-Length":"7","User-Agent":"axios/1.9.0","content-type":"application/vnd.interoperability.parties+json;version=1.0","date":"Thu, 15 May 2025 20:18:30 GMT","fspiop-destination":"42"},"httpAgent":{"_events":{},"_eventsCount":2,"defaultPort":80,"freeSockets":{},"keepAlive":true,"keepAliveMsecs":1000,"maxFreeSockets":256,"maxSockets":null,"maxTotalSockets":null,"options":{"keepAlive":true,"noDelay":true,"path":null,"scheduling":"lifo","timeout":5000},"protocol":"http:","requests":{},"scheduling":"lifo","sockets":{"127.0.0.1:9999:":[{"_closeAfterHandlingError":false,"_events":{"close":[null,null,null],"connect":[null,null,null],"timeout":[null,null,null]},"_eventsCount":8,"_hadError":true,"_host":null,"_httpMessage":{"_closed":false,"_contentLength":7,"_defaultKeepAlive":true,"_ended":false,"_events":{},"_eventsCount":7,"_hasBody":true,"_header":"PUT /test HTTP/1.1\r\ncontent-type: application/vnd.interoperability.parties+json;version=1.0\r\ndate: Thu, 15 May 2025 20:18:30 GMT\r\nfspiop-destination: 42\r\nUser-Agent: axios/1.9.0\r\nContent-Length: 7\r\nAccept-Encoding: gzip, compress, deflate, br\r\nHost: 127.0.0.1:9999\r\nConnection: keep-alive\r\n\r\n","_headerSent":true,"_keepAliveTimeout":0,"_last":false,"_redirectable":{"_currentUrl":"http://127.0.0.1:9999/test","_ended":false,"_ending":true,"_events":{"socket":[null,null]},"_eventsCount":3,"_options":{"agents":{},"beforeRedirects":{},"headers":{"Accept-Encoding":"gzip, compress, deflate, br","Content-Length":"7","User-Agent":"axios/1.9.0","content-type":"application/vnd.interoperability.parties+json;version=1.0","date":"Thu, 15 May 2025 20:18:30 GMT","fspiop-destination":"42"},"hostname":"127.0.0.1","maxBodyLength":null,"maxRedirects":21,"method":"PUT","nativeProtocols":{"http:":{"METHODS":["ACL","BIND","CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LINK","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCALENDAR","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","QUERY","REBIND","REPORT","SEARCH","SOURCE","SUBSCRIBE","TRACE","UNBIND","UNLINK","UNLOCK","UNSUBSCRIBE"],"STATUS_CODES":{"100":"Continue","101":"Switching Protocols","102":"Processing","103":"Early Hints","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I'm a Teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Too Early","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"},"maxHeaderSize":16384},"https:":{"globalAgent":{"_events":{},"_eventsCount":2,"_sessionCache":{"list":[],"map":{}},"defaultPort":443,"freeSockets":{},"keepAlive":true,"keepAliveMsecs":1000,"maxCachedSessions":100,"maxFreeSockets":256,"maxSockets":null,"maxTotalSockets":null,"options":{"keepAlive":true,"noDelay":true,"path":null,"scheduling":"lifo","timeout":5000},"protocol":"https:","requests":{},"scheduling":"lifo","sockets":{},"totalSocketCount":0}}},"path":"/test","pathname":"/test","port":"9999","protocol":"http:"},"_redirectCount":0,"_redirects":[],"_requestBodyBuffers":[{"data":{"data":[123,34,97,34,58,49,125],"type":"Buffer"}}],"_requestBodyLength":7,"_timeout":null,"_writableState":{"bufferedIndex":0,"corked":0,"highWaterMark":65536,"length":0,"pendingcb":0,"writelen":0}},"_removedConnection":false,"_removedContLen":false,"_removedTE":false,"_trailer":"","aborted":false,"chunkedEncoding":false,"destroyed":false,"finished":false,"host":"127.0.0.1","maxHeadersCount":null,"maxRequestsOnConnectionReached":false,"method":"PUT","outputData":[],"outputSize":0,"parser":null,"path":"/test","protocol":"http:","res":null,"reusedSocket":false,"sendDate":false,"shouldKeepAlive":true,"strictContentLength":false,"upgradeOrConnect":false,"useChunkedEncodingByDefault":true,"writable":true},"_parent":null,"_pendingData":[{"chunk":"PUT /test HTTP/1.1\r\ncontent-type: application/vnd.interoperability.parties+json;version=1.0\r\ndate: Thu, 15 May 2025 20:18:30 GMT\r\nfspiop-destination: 42\r\nUser-Agent: axios/1.9.0\r\nContent-Length: 7\r\nAccept-Encoding: gzip, compress, deflate, br\r\nHost: 127.0.0.1:9999\r\nConnection: keep-alive\r\n\r\n","encoding":"latin1"},{"chunk":{"data":[123,34,97,34,58,49,125],"type":"Buffer"},"encoding":"buffer"}],"_pendingEncoding":"","_readableState":{"awaitDrainWriters":null,"buffer":[],"bufferIndex":0,"highWaterMark":65536,"length":0,"pipes":[]},"_server":null,"_sockname":null,"_writableState":{"bufferedIndex":0,"corked":0,"highWaterMark":65536,"length":299,"pendingcb":1,"writelen":299},"allowHalfOpen":false,"connecting":false,"parser":null,"server":null,"timeout":64966}]},"totalSocketCount":1},"maxBodyLength":-1,"maxContentLength":-1,"method":"put","timeout":64966,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/test","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"message":"connect ECONNREFUSED 127.0.0.1:9999","name":"Error","stack":"Error: connect ECONNREFUSED 127.0.0.1:9999\n at Function.Object..AxiosError.from (/home/circleci/project/node_modules/axios/lib/core/AxiosError.js:92:14)\n at RedirectableRequest.handleRequestError (/home/circleci/project/node_modules/axios/lib/adapters/http.js:620:25)\n at RedirectableRequest.emit (node:events:530:35)\n at ClientRequest.eventHandlers. (/home/circleci/project/node_modules/follow-redirects/index.js:49:24)\n at ClientRequest.emit (node:events:518:28)\n at emitErrorEvent (node:_http_client:104:11)\n at Socket.socketErrorListener (node:_http_client:518:5)\n at Socket.emit (node:events:518:28)\n at emitErrorNT (node:internal/streams/destroy:170:8)\n at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n at processTicksAndRejections (node:internal/process/task_queues:90:21)\n at Axios.request (/home/circleci/project/node_modules/axios/lib/core/Axios.js:45:41)\n at processTicksAndRejections (node:internal/process/task_queues:105:5)\n at Axios.request (/home/circleci/project/node_modules/axios/lib/core/Axios.js:40:14)\n at Axios.request (/home/circleci/project/node_modules/axios/lib/core/Axios.js:40:14)\n at Axios.request (/home/circleci/project/node_modules/axios/lib/core/Axios.js:40:14)\n at AxiosHttpRequester.sendRequest (/home/circleci/project/src/lib/httpRequester/AxiosHttpRequester.js:79:34)\n at primRequestSerializationTest (/home/circleci/project/test/unit/lib/requests/request-errors.test.js:70:9)\n at Object. (/home/circleci/project/test/unit/lib/requests/request-errors.test.js:93:17)"},"opts":{"agent":"[REDACTED]","body":{"a":1},"headers":{"content-type":"application/vnd.interoperability.parties+json;version=1.0","date":"Thu, 15 May 2025 20:18:30 GMT","fspiop-destination":"42"},"method":"PUT","qs":{},"uri":"http://127.0.0.1:9999/test"}} 2025-05-15T20:18:30.497Z - info: max retries exceeded for HTTP request! connect ECONNREFUSED 127.0.0.1:9999 - {"code":"ECONNREFUSED","component":"MojaloopRequests","retryCount":3} 2025-05-15T20:18:30.499Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","error":{"address":"127.0.0.1","cause":{"address":"127.0.0.1","code":"ECONNREFUSED","errno":-111,"port":9999,"syscall":"connect"},"code":"ECONNREFUSED","config":{"baseURL":"http://127.0.0.1:9999","method":"post","restData":"[REDACTED]","url":"/test"},"errno":-111,"message":"connect ECONNREFUSED 127.0.0.1:9999","name":"Error","originalRequest":{"baseURL":"http://127.0.0.1:9999","body":"{\"a\":1}","data":{"a":1},"headers":{"accept":"application/vnd.interoperability.parties+json;version=1","content-type":"application/vnd.interoperability.parties+json;version=1.0","date":"Thu, 15 May 2025 20:18:30 GMT","fspiop-destination":"42"},"httpAgent":"[REDACTED]","method":"POST","transitional":{"clarifyTimeoutError":true},"url":"/test","withCredentials":false},"port":9999,"request":"[REDACTED]","syscall":"connect"}} 2025-05-15T20:18:30.500Z - warn: Error attempting request - {"component":"MojaloopRequests","err":{"code":"ECONNREFUSED","config":{"adapter":["xhr","http","fetch"],"allowAbsoluteUrls":true,"axios-retry":{"lastRequestTime":1747340310496,"retries":3,"retryCount":3,"shouldResetTimeout":false,"validateResponse":null},"baseURL":"http://127.0.0.1:9999","data":"{\"a\":1}","env":{},"headers":{"Accept-Encoding":"gzip, compress, deflate, br","Content-Length":"7","User-Agent":"axios/1.9.0","accept":"application/vnd.interoperability.parties+json;version=1","content-type":"application/vnd.interoperability.parties+json;version=1.0","date":"Thu, 15 May 2025 20:18:30 GMT","fspiop-destination":"42"},"httpAgent":{"_events":{},"_eventsCount":2,"defaultPort":80,"freeSockets":{},"keepAlive":true,"keepAliveMsecs":1000,"maxFreeSockets":256,"maxSockets":null,"maxTotalSockets":null,"options":{"keepAlive":true,"noDelay":true,"path":null,"scheduling":"lifo","timeout":5000},"protocol":"http:","requests":{},"scheduling":"lifo","sockets":{"127.0.0.1:9999:":[{"_closeAfterHandlingError":false,"_events":{"close":[null,null,null],"connect":[null,null,null],"timeout":[null,null,null]},"_eventsCount":8,"_hadError":true,"_host":null,"_httpMessage":{"_closed":false,"_contentLength":7,"_defaultKeepAlive":true,"_ended":false,"_events":{},"_eventsCount":7,"_hasBody":true,"_header":"POST /test HTTP/1.1\r\ncontent-type: application/vnd.interoperability.parties+json;version=1.0\r\ndate: Thu, 15 May 2025 20:18:30 GMT\r\nfspiop-destination: 42\r\naccept: application/vnd.interoperability.parties+json;version=1\r\nUser-Agent: axios/1.9.0\r\nContent-Length: 7\r\nAccept-Encoding: gzip, compress, deflate, br\r\nHost: 127.0.0.1:9999\r\nConnection: keep-alive\r\n\r\n","_headerSent":true,"_keepAliveTimeout":0,"_last":false,"_redirectable":{"_currentUrl":"http://127.0.0.1:9999/test","_ended":false,"_ending":true,"_events":{"socket":[null,null]},"_eventsCount":3,"_options":{"agents":{},"beforeRedirects":{},"headers":{"Accept-Encoding":"gzip, compress, deflate, br","Content-Length":"7","User-Agent":"axios/1.9.0","accept":"application/vnd.interoperability.parties+json;version=1","content-type":"application/vnd.interoperability.parties+json;version=1.0","date":"Thu, 15 May 2025 20:18:30 GMT","fspiop-destination":"42"},"hostname":"127.0.0.1","maxBodyLength":null,"maxRedirects":21,"method":"POST","nativeProtocols":{"http:":{"METHODS":["ACL","BIND","CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LINK","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCALENDAR","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","QUERY","REBIND","REPORT","SEARCH","SOURCE","SUBSCRIBE","TRACE","UNBIND","UNLINK","UNLOCK","UNSUBSCRIBE"],"STATUS_CODES":{"100":"Continue","101":"Switching Protocols","102":"Processing","103":"Early Hints","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I'm a Teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Too Early","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"},"maxHeaderSize":16384},"https:":{"globalAgent":{"_events":{},"_eventsCount":2,"_sessionCache":{"list":[],"map":{}},"defaultPort":443,"freeSockets":{},"keepAlive":true,"keepAliveMsecs":1000,"maxCachedSessions":100,"maxFreeSockets":256,"maxSockets":null,"maxTotalSockets":null,"options":{"keepAlive":true,"noDelay":true,"path":null,"scheduling":"lifo","timeout":5000},"protocol":"https:","requests":{},"scheduling":"lifo","sockets":{},"totalSocketCount":0}}},"path":"/test","pathname":"/test","port":"9999","protocol":"http:"},"_redirectCount":0,"_redirects":[],"_requestBodyBuffers":[{"data":{"data":[123,34,97,34,58,49,125],"type":"Buffer"}}],"_requestBodyLength":7,"_timeout":null,"_writableState":{"bufferedIndex":0,"corked":0,"highWaterMark":65536,"length":0,"pendingcb":0,"writelen":0}},"_removedConnection":false,"_removedContLen":false,"_removedTE":false,"_trailer":"","aborted":false,"chunkedEncoding":false,"destroyed":false,"finished":false,"host":"127.0.0.1","maxHeadersCount":null,"maxRequestsOnConnectionReached":false,"method":"POST","outputData":[],"outputSize":0,"parser":null,"path":"/test","protocol":"http:","res":null,"reusedSocket":false,"sendDate":false,"shouldKeepAlive":true,"strictContentLength":false,"upgradeOrConnect":false,"useChunkedEncodingByDefault":true,"writable":true},"_parent":null,"_pendingData":[{"chunk":"POST /test HTTP/1.1\r\ncontent-type: application/vnd.interoperability.parties+json;version=1.0\r\ndate: Thu, 15 May 2025 20:18:30 GMT\r\nfspiop-destination: 42\r\naccept: application/vnd.interoperability.parties+json;version=1\r\nUser-Agent: axios/1.9.0\r\nContent-Length: 7\r\nAccept-Encoding: gzip, compress, deflate, br\r\nHost: 127.0.0.1:9999\r\nConnection: keep-alive\r\n\r\n","encoding":"latin1"},{"chunk":{"data":[123,34,97,34,58,49,125],"type":"Buffer"},"encoding":"buffer"}],"_pendingEncoding":"","_readableState":{"awaitDrainWriters":null,"buffer":[],"bufferIndex":0,"highWaterMark":65536,"length":0,"pipes":[]},"_server":null,"_sockname":null,"_writableState":{"bufferedIndex":0,"corked":0,"highWaterMark":65536,"length":365,"pendingcb":1,"writelen":365},"allowHalfOpen":false,"connecting":false,"parser":null,"server":null,"timeout":64963}]},"totalSocketCount":1},"maxBodyLength":-1,"maxContentLength":-1,"method":"post","timeout":64963,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":true,"forcedJSONParsing":true,"silentJSONParsing":true},"url":"/test","withCredentials":false,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"message":"connect ECONNREFUSED 127.0.0.1:9999","name":"Error","stack":"Error: connect ECONNREFUSED 127.0.0.1:9999\n at Function.Object..AxiosError.from (/home/circleci/project/node_modules/axios/lib/core/AxiosError.js:92:14)\n at RedirectableRequest.handleRequestError (/home/circleci/project/node_modules/axios/lib/adapters/http.js:620:25)\n at RedirectableRequest.emit (node:events:530:35)\n at ClientRequest.eventHandlers. (/home/circleci/project/node_modules/follow-redirects/index.js:49:24)\n at ClientRequest.emit (node:events:518:28)\n at emitErrorEvent (node:_http_client:104:11)\n at Socket.socketErrorListener (node:_http_client:518:5)\n at Socket.emit (node:events:518:28)\n at emitErrorNT (node:internal/streams/destroy:170:8)\n at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n at processTicksAndRejections (node:internal/process/task_queues:90:21)\n at Axios.request (/home/circleci/project/node_modules/axios/lib/core/Axios.js:45:41)\n at processTicksAndRejections (node:internal/process/task_queues:105:5)\n at Axios.request (/home/circleci/project/node_modules/axios/lib/core/Axios.js:40:14)\n at Axios.request (/home/circleci/project/node_modules/axios/lib/core/Axios.js:40:14)\n at Axios.request (/home/circleci/project/node_modules/axios/lib/core/Axios.js:40:14)\n at AxiosHttpRequester.sendRequest (/home/circleci/project/src/lib/httpRequester/AxiosHttpRequester.js:79:34)\n at primRequestSerializationTest (/home/circleci/project/test/unit/lib/requests/request-errors.test.js:70:9)\n at Object. (/home/circleci/project/test/unit/lib/requests/request-errors.test.js:105:13)"},"opts":{"agent":"[REDACTED]","body":{"a":1},"headers":{"accept":"application/vnd.interoperability.parties+json;version=1","content-type":"application/vnd.interoperability.parties+json;version=1.0","date":"Thu, 15 May 2025 20:18:30 GMT","fspiop-destination":"42"},"method":"POST","qs":{},"uri":"http://127.0.0.1:9999/test"}} 2025-05-15T20:18:30.578Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","context":"SDK_SC","error":{"code":"ECONNABORTED","config":{"baseURL":"https://jsonplaceholder.typicode.com","method":"get","restData":"[REDACTED]","url":"/todos"},"message":"timeout of 1ms exceeded","name":"AxiosError","originalRequest":{"baseURL":"https://jsonplaceholder.typicode.com","url":"/todos"},"request":"[REDACTED]"}}  PASS  test/unit/lib/requests/request-errors.test.js request error handling ✓ does not throw "TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be one of type string or Buffer. Received type object when sending an Object" on _post (148 ms) ✓ does not throw "TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be one of type string or Buffer. Received type object when sending an Object" on _put (42 ms) ✓ Errors include original request object (46 ms) axios Timeout Test --> ✓ should be able to set default timeout (77 ms)  PASS  test/unit/lib/requests/common.test.js Common ✓ pass if content-length is not populated in incoming http response ✓ throw an error if content-length is greater than 0 (1 ms) ✓ throw an error if response code is <200 formatEndpointOrDefault ✓ returns the default when endpoint is null ✓ returns the default when endpoint is undefined ✓ returns the default when transportScheme is null ✓ returns the default when transportScheme is undefined ✓ returns the formatted endpoint ✓ throws an error when no endpoint and no default endpoint are set (6 ms)  PASS  test/unit/lib/requests/apiTransformer.test.js API Transformer ✓ Constructs with valid config (1 ms) ✓ Rejects unsupported API type on construction (6 ms) ✓ Transforms an outgoing request from FSPIOP to ISO20022 when API type is ISO20022 (3 ms) ✓ Does not transforms an outgoing request from FSPIOP when API type is FSPIOP (1 ms)  PASS  test/unit/lib/errors/errors.test.js Mojaloop errors ✓ all error constants have a code and a message (1 ms) ✓ returns a mojaloop error code object given a valid mojaloop error code (1 ms) ✓ returns a mojaloop API error object given a valid mojaloop error code (1 ms) ✓ returns undefined given an invalid mojaloop error code ✓ constructs a MojaloopFSPIOPError object correctly (7 ms)  PASS  test/unit/jws.perf.test.js JWS ✓ Should generate valid JWS headers and signature for request with body (2457 ms) ✓ Should generate valid JWS headers and signature for request with body ES256 (982 ms)  PASS  test/unit/lib/requests/PingRequests.test.js PingRequests Tests --> ✓ should send successful PUT callback (5 ms)  PASS  test/unit/lib/logger.test.js SdkLogger Tests --> ✓ should create an instance of SdkLogger class (3 ms) ✓ should have log() method (1 ms) ✓ should have push() method (1 ms) ✓ should return SdkLogger instance from push() method (1 ms)  PASS  test/unit/index.test.js index layout ✓ should export 'Errors' (1 ms) ✓ should export 'Ilp' ✓ should export 'Jws' ✓ should export 'Logger' ✓ should export 'MojaloopRequests' (1 ms) ✓ should export 'ThirdpartyRequests' ✓ should export 'request' (1 ms) ✓ should export 'WSO2Auth'  PASS  test/unit/lib/ilp/ilpFactory.test.js ilpFactory Tests --> ✓ should throw error if unsupported version is provided (3 ms) ✓ should throw error if no ilp options provided ✓ should create IlpV1 instance (1 ms) ✓ should create IlpV4 instance 2025-05-15T20:18:36.159Z - warn: error in sending HTTP request - {"component":"AxiosHttpRequester","context":"SDK_SC","error":{"contentType":"text/html","originalRequest":{"baseURL":"http://test.com","responseType":"json","transitional":{"clarifyTimeoutError":true},"url":"/xxx","withCredentials":false},"request":"[REDACTED]","status":200,"statusCode":200}}  PASS  test/unit/lib/request.test.js request Tests --> ✓ should throw error on wrong content-type, and pass original statusCode, when responseType = "json" (3 ms) Test Suites: 19 passed, 19 total Tests: 219 passed, 219 total Snapshots: 0 total Time: 24.879 s Ran all test suites matching /test\/unit/i.