MaayanLab / enrichr_issues

5 stars 3 forks source link

[BUG] ARC HPC NAT IP Address Blocked: ConnectionResetError when Accessing EnrichR API #92

Open xuxu-wei opened 2 months ago

xuxu-wei commented 2 months ago

Hi EnrichR team:

I'm a researcher at University of Calgary. We are encountering connection errors when trying to access the Enrichr API from the University of Calgary’s ARC HPC environment. The specific error message we receive is: ConnectionResetError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

This issue seems to be specific to the ARC HPC environment, as the same API calls work fine on local machines and other environments. Upon investigation by the ARC administrators, it appears that the ARC NAT IP address (136.159.79.11) may be blocked by Enrichr’s server.

Could you please check if the ARC HPC NAT IP (136.159.79.11) has been blocked on your server? We would appreciate any assistance in resolving this issue.

AviMaayan commented 2 months ago

Dear @xuxu-wei we had to block you because you were submitting too many requests per second...

xuxu-wei commented 2 months ago

Dear @xuxu-wei we had to block you because you were submitting too many requests per second...

Dear @AviMaayan

Thank you for your prompt response and for clarifying the reason behind the block.

Could you please advise on the recommended number of requests and the appropriate frequency for interacting with the Enrichr API? I will make sure to inform everyone in our lab to ensure that we adhere to the guidelines and avoid placing too much load on your servers.

Additionally, would it be possible to have our access to the API reinstated? The ability to use the Enrichr API is critical for our ongoing research, and we will take the necessary precautions to avoid overwhelming the server in the future.

We greatly appreciate your support and understanding.

AviMaayan commented 2 months ago

Great. Please limit the requests for one per second.

xuxu-wei commented 2 months ago

Great. Please limit the requests for one per second.

Thanks! I will tell all members of our lab to limit requests to one per second moving forward. We truly appreciate your support.

u8sand commented 2 months ago

Just writing to let you know that this ip address has been unblocked for now. Thank you for exercising restraint when accessing our services which are free resources depended on by many other researchers.

We do have another service for performing enrichment analysis over API exclusively: https://maayanlab.github.io/smartAPIs/speedrichr/

Which should be able to handle a higher load, still, please avoid making too many requests per second.

xuxu-wei commented 2 months ago

Just writing to let you know that this ip address has been unblocked for now. Thank you for exercising restraint when accessing our services which are free resources depended on by many other researchers.

We do have another service for performing enrichment analysis over API exclusively: https://maayanlab.github.io/smartAPIs/speedrichr/

Which should be able to handle a higher load, still, please avoid making too many requests per second.

Dear @u8sand, Thanks so much for unblocking our IP and for sharing the Speedrichr API link!

I have a quick question regarding Speedrichr: on the EnrichR help page, I see that it can be used for enrichment analysis with a background gene set, but I’m not sure if adding a background gene set is always required. If I don’t include a background gene set, will Speedrichr behave the same as https://maayanlab.cloud/Enrichr/?

In other words, would I just need to replace https://maayanlab.cloud/Enrichr/ with https://maayanlab.cloud/speedrichr/ in my requests, and everything else will work the same?

Thanks again!

u8sand commented 2 months ago

The primary difference is that speedrichr does not persist results indefinitely like Enrichr does. It should work as you described without needing to provide a background. There is a separate endpoint when you want to enrich with a supplied background.

xuxu-wei commented 2 months ago

Perfect! Thank you for the clarification! I will try to proceed with Speedrichr as suggested.