ufna / VaRest

REST API plugin for Unreal Engine 4 - we love restfull backend and JSON communications!
https://www.unrealengine.com/marketplace/en-US/product/varest-plugin
MIT License
1.09k stars 301 forks source link

No response (neither failure nor complete) on requests in UE 4.27 #357

Closed heivoll closed 3 years ago

heivoll commented 3 years ago

Thank you for a great plugin! I hope this is the correct place to ask.

We've used this on a project since UE 4.24 without issues. Recently we switched from 4.26 to 4.27, and are now experiencing problems where the requests don't get any events triggered, neither the OnRequestComplete nor the OnRequestFail events are triggered at all (or seem to time out either). Confusingly, it works on one computer in both PIE and shipping builds, but on other machines neither do work - while anything built on 4.26 still seems to work everywhere.

I believed to start with that it would be related to a firewall issue or something, but adding exceptions or turning off the Windows Firewall does nothing. In fact, when requests are blocked by the firewall the OnRequestFail event at least is triggered. The computer where it fails is connected to the same network as the other one.

The Web Browser widget works on all, so it's not like there are no network connections at all from UE. I've also tested with clean installs of the engine, and on empty test projects to exclude the chance of project related issues.

Have anyone had the same problems? Have there been any changes to the underlying UE APIs or something between versions, that somehow trigger issues on certain Windows machines?

Any help would be greatly appreciated, as I've tried to debug this for a few days now with no luck!

ufna commented 3 years ago

@heivoll , I tried to reproduce, but no success - all works as it should on my end and in my game at prod. It looks like something local. Please try to enable Verbose log level to Http module and check the logs.

heivoll commented 3 years ago

Thank you for testing @ufna ! Since I wrote the issue, I have tested some more. I haven't gotten a solution, but it seems like it's definitely connected to the underlying Http module rather than something in VaRest.

More specifically, it only happens with HTTPS communication with between certain servers (most likely because of their SSL settings) and certain client machines (among them our EC2 Windows Server 2019 machines), where some error happens where the request itself, and also any following requests, stop being processed.

In my specific case, I've made a temporary workaround by only using unencrypted data (http instead of https). Will keep investigating it though, so hopefully at least I can give some valuable feedback for others encountering the same problem.

ufna commented 3 years ago

@heivoll , thanks for the research, ssl issues can be a pain sometimes(

I'm closing this ticket, it seemed to be not possible to solve from VaRest itself. Thanks again for report and research!

cstamati commented 1 year ago

Thank you for testing @ufna ! Since I wrote the issue, I have tested some more. I haven't gotten a solution, but it seems like it's definitely connected to the underlying Http module rather than something in VaRest.

More specifically, it only happens with HTTPS communication with between certain servers (most likely because of their SSL settings) and certain client machines (among them our EC2 Windows Server 2019 machines), where some error happens where the request itself, and also any following requests, stop being processed.

In my specific case, I've made a temporary workaround by only using unencrypted data (http instead of https). Will keep investigating it though, so hopefully at least I can give some valuable feedback for others encountering the same problem.

Hello @heivoll @ufna, I recently started using VaRest on 5.1.1 and I am getting the same behaviour... When I'm calling a hello world api on https stored on our server everything works as expected:

image

But if i call an api from Vercel I am not receiving anything Error or Completed...

image

And after the "Request apps" call every api that I call is not returning anything.. For example the hello world api is not working anymore:

image

To make it work again i have to restart the engine. By doing so I noticed that after closing the Unreal Editor in the task manager the process is still running, I suppose because it's still waiting for the request? @ufna

Screenshot 2023-04-15 201152

Anyway, without this small problem the plugin works fine. But i really can't switch to http do you know how can I solve this problem?

Thanks!

heivoll commented 1 year ago

Hi @cstamati.

There's a forum thread on the UE forums that I created around the same time where I posted a fix for my issue at the time, and there are also some links to fixes for other similar problems there. Suggest you take a look: https://forums.unrealengine.com/t/no-response-fail-or-success-on-http-calls/489259

We've also recently had some other issues that at first sight seemed like the same thing, but wasn't related to https; http requests with or without SSL never completing but also never failing. As with my initial issue, it wasn't related to VaRest really, but rather the Http system in UE. In our case, there was one plugin (Expressive Text) that was continously sending requests to track some usage data, that were not being completed and seemingly blocking all other requests as well. Disabling the plugin fixed the problem. Of course I have no idea if your problem is the same or not, but I recommend having a look at the logs for requests (search for http in the main log), and maybe try to disable plugins to see if it helps. Best of luck!