question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Error 503: Server unavailable

See original GitHub issue

Just downloaded the app and I cant login , no matter what I try

here is the debuginfor for ya:

[11-12-2018 11:47] Failed to build HTTP request and get response for: method=GET, url=‘https://www.pathofexile.com/login’, allowAutoRedirects=, requestData=‘’: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. [11-12-2018 11:47] System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. bei System.Net.HttpWebRequest.GetResponse() bei POEApi.Transport.HttpTransport.BuildHttpRequestAndGetResponse(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.PerformHttpRequest(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.Authenticate(String email, SecureString password, Boolean useSessionID) bei POEApi.Model.POEModel.Authenticate(String email, SecureString password, Boolean offline, Boolean useSessionID) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute() [11-12-2018 11:49] Failed to build HTTP request and get response for: method=GET, url=‘https://www.pathofexile.com/login’, allowAutoRedirects=, requestData=‘’: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. [11-12-2018 11:49] System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. bei System.Net.HttpWebRequest.GetResponse() bei POEApi.Transport.HttpTransport.BuildHttpRequestAndGetResponse(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.PerformHttpRequest(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.Authenticate(String email, SecureString password, Boolean useSessionID) bei POEApi.Model.POEModel.Authenticate(String email, SecureString password, Boolean offline, Boolean useSessionID) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute() [11-12-2018 11:51] Failed to build HTTP request and get response for: method=GET, url=‘https://www.pathofexile.com/login’, allowAutoRedirects=, requestData=‘’: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. [11-12-2018 11:51] System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. bei System.Net.HttpWebRequest.GetResponse() bei POEApi.Transport.HttpTransport.BuildHttpRequestAndGetResponse(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.PerformHttpRequest(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.Authenticate(String email, SecureString password, Boolean useSessionID) bei POEApi.Model.POEModel.Authenticate(String email, SecureString password, Boolean offline, Boolean useSessionID) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute() [11-12-2018 11:54] System.ArgumentNullException: Der Wert darf nicht NULL sein. Parametername: source bei System.Linq.Enumerable.Select[TSource,TResult](IEnumerable1 source, Func2 selector) bei Procurement.ViewModel.LoginWindowViewModel.updateCharactersByLeague(List1 chars) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute() [11-12-2018 11:54] System.ArgumentNullException: Der Wert darf nicht NULL sein. Parametername: source bei System.Linq.Enumerable.Select[TSource,TResult](IEnumerable1 source, Func2 selector) bei Procurement.ViewModel.LoginWindowViewModel.updateCharactersByLeague(List1 chars) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute() [11-12-2018 11:54] Failed to build HTTP request and get response for: method=GET, url=‘https://www.pathofexile.com/login’, allowAutoRedirects=, requestData=‘’: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. [11-12-2018 11:54] System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. bei System.Net.HttpWebRequest.GetResponse() bei POEApi.Transport.HttpTransport.BuildHttpRequestAndGetResponse(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.PerformHttpRequest(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.Authenticate(String email, SecureString password, Boolean useSessionID) bei POEApi.Model.POEModel.Authenticate(String email, SecureString password, Boolean offline, Boolean useSessionID) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute() [11-12-2018 11:54] Failed to build HTTP request and get response for: method=GET, url=‘https://www.pathofexile.com/login’, allowAutoRedirects=, requestData=‘’: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. [11-12-2018 11:54] System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. bei System.Net.HttpWebRequest.GetResponse() bei POEApi.Transport.HttpTransport.BuildHttpRequestAndGetResponse(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.PerformHttpRequest(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.Authenticate(String email, SecureString password, Boolean useSessionID) bei POEApi.Model.POEModel.Authenticate(String email, SecureString password, Boolean offline, Boolean useSessionID) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute() [11-12-2018 11:55] Failed to build HTTP request and get response for: method=GET, url=‘https://www.pathofexile.com/login’, allowAutoRedirects=, requestData=‘’: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. [11-12-2018 11:55] System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. bei System.Net.HttpWebRequest.GetResponse() bei POEApi.Transport.HttpTransport.BuildHttpRequestAndGetResponse(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.PerformHttpRequest(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.Authenticate(String email, SecureString password, Boolean useSessionID) bei POEApi.Model.POEModel.Authenticate(String email, SecureString password, Boolean offline, Boolean useSessionID) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute() [11-12-2018 11:55] Failed to build HTTP request and get response for: method=GET, url=‘https://www.pathofexile.com/login’, allowAutoRedirects=, requestData=‘’: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. [11-12-2018 11:55] System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. bei System.Net.HttpWebRequest.GetResponse() bei POEApi.Transport.HttpTransport.BuildHttpRequestAndGetResponse(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.PerformHttpRequest(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.Authenticate(String email, SecureString password, Boolean useSessionID) bei POEApi.Model.POEModel.Authenticate(String email, SecureString password, Boolean offline, Boolean useSessionID) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute() [11-12-2018 11:55] Failed to build HTTP request and get response for: method=GET, url=‘https://www.pathofexile.com/login’, allowAutoRedirects=, requestData=‘’: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. [11-12-2018 11:55] System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. bei System.Net.HttpWebRequest.GetResponse() bei POEApi.Transport.HttpTransport.BuildHttpRequestAndGetResponse(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.PerformHttpRequest(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.Authenticate(String email, SecureString password, Boolean useSessionID) bei POEApi.Model.POEModel.Authenticate(String email, SecureString password, Boolean offline, Boolean useSessionID) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute() [11-12-2018 11:55] Failed to build HTTP request and get response for: method=GET, url=‘https://www.pathofexile.com/login’, allowAutoRedirects=, requestData=‘’: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. [11-12-2018 11:55] System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. bei System.Net.HttpWebRequest.GetResponse() bei POEApi.Transport.HttpTransport.BuildHttpRequestAndGetResponse(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.PerformHttpRequest(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.Authenticate(String email, SecureString password, Boolean useSessionID) bei POEApi.Model.POEModel.Authenticate(String email, SecureString password, Boolean offline, Boolean useSessionID) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute() [11-12-2018 11:55] Failed to build HTTP request and get response for: method=GET, url=‘https://www.pathofexile.com/login’, allowAutoRedirects=, requestData=‘’: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. [11-12-2018 11:55] System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. bei System.Net.HttpWebRequest.GetResponse() bei POEApi.Transport.HttpTransport.BuildHttpRequestAndGetResponse(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.PerformHttpRequest(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.Authenticate(String email, SecureString password, Boolean useSessionID) bei POEApi.Model.POEModel.Authenticate(String email, SecureString password, Boolean offline, Boolean useSessionID) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute() [11-12-2018 11:55] Failed to build HTTP request and get response for: method=GET, url=‘https://www.pathofexile.com/login’, allowAutoRedirects=, requestData=‘’: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. [11-12-2018 11:55] System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. bei System.Net.HttpWebRequest.GetResponse() bei POEApi.Transport.HttpTransport.BuildHttpRequestAndGetResponse(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.PerformHttpRequest(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.Authenticate(String email, SecureString password, Boolean useSessionID) bei POEApi.Model.POEModel.Authenticate(String email, SecureString password, Boolean offline, Boolean useSessionID) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute() [11-12-2018 11:55] Failed to build HTTP request and get response for: method=GET, url=‘https://www.pathofexile.com/login’, allowAutoRedirects=, requestData=‘’: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. [11-12-2018 11:55] System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. bei System.Net.HttpWebRequest.GetResponse() bei POEApi.Transport.HttpTransport.BuildHttpRequestAndGetResponse(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.PerformHttpRequest(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.Authenticate(String email, SecureString password, Boolean useSessionID) bei POEApi.Model.POEModel.Authenticate(String email, SecureString password, Boolean offline, Boolean useSessionID) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute() [11-12-2018 11:55] Failed to build HTTP request and get response for: method=GET, url=‘https://www.pathofexile.com/login’, allowAutoRedirects=, requestData=‘’: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. [11-12-2018 11:55] System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. bei System.Net.HttpWebRequest.GetResponse() bei POEApi.Transport.HttpTransport.BuildHttpRequestAndGetResponse(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.PerformHttpRequest(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.Authenticate(String email, SecureString password, Boolean useSessionID) bei POEApi.Model.POEModel.Authenticate(String email, SecureString password, Boolean offline, Boolean useSessionID) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute() [11-12-2018 11:55] Failed to build HTTP request and get response for: method=GET, url=‘https://www.pathofexile.com/login’, allowAutoRedirects=, requestData=‘’: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. [11-12-2018 11:55] System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. bei System.Net.HttpWebRequest.GetResponse() bei POEApi.Transport.HttpTransport.BuildHttpRequestAndGetResponse(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.PerformHttpRequest(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.Authenticate(String email, SecureString password, Boolean useSessionID) bei POEApi.Model.POEModel.Authenticate(String email, SecureString password, Boolean offline, Boolean useSessionID) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute() [11-12-2018 11:55] Failed to build HTTP request and get response for: method=GET, url=‘https://www.pathofexile.com/login’, allowAutoRedirects=, requestData=‘’: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. [11-12-2018 11:55] System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. bei System.Net.HttpWebRequest.GetResponse() bei POEApi.Transport.HttpTransport.BuildHttpRequestAndGetResponse(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.PerformHttpRequest(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.Authenticate(String email, SecureString password, Boolean useSessionID) bei POEApi.Model.POEModel.Authenticate(String email, SecureString password, Boolean offline, Boolean useSessionID) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute() [11-12-2018 11:55] Failed to build HTTP request and get response for: method=GET, url=‘https://www.pathofexile.com/login’, allowAutoRedirects=, requestData=‘’: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. [11-12-2018 11:55] System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar. bei System.Net.HttpWebRequest.GetResponse() bei POEApi.Transport.HttpTransport.BuildHttpRequestAndGetResponse(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.PerformHttpRequest(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData) bei POEApi.Transport.HttpTransport.Authenticate(String email, SecureString password, Boolean useSessionID) bei POEApi.Model.POEModel.Authenticate(String email, SecureString password, Boolean offline, Boolean useSessionID) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute() [11-12-2018 11:55] System.ArgumentNullException: Der Wert darf nicht NULL sein. Parametername: source bei System.Linq.Enumerable.Select[TSource,TResult](IEnumerable1 source, Func2 selector) bei Procurement.ViewModel.LoginWindowViewModel.updateCharactersByLeague(List1 chars) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute() [11-12-2018 11:55] System.ArgumentNullException: Der Wert darf nicht NULL sein. Parametername: source bei System.Linq.Enumerable.Select[TSource,TResult](IEnumerable1 source, Func2 selector) bei Procurement.ViewModel.LoginWindowViewModel.updateCharactersByLeague(List1 chars) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute() [11-12-2018 11:55] System.ArgumentNullException: Der Wert darf nicht NULL sein. Parametername: source bei System.Linq.Enumerable.Select[TSource,TResult](IEnumerable1 source, Func2 selector) bei Procurement.ViewModel.LoginWindowViewModel.updateCharactersByLeague(List1 chars) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute() [11-12-2018 11:55] System.ArgumentNullException: Der Wert darf nicht NULL sein. Parametername: source bei System.Linq.Enumerable.Select[TSource,TResult](IEnumerable1 source, Func2 selector) bei Procurement.ViewModel.LoginWindowViewModel.updateCharactersByLeague(List1 chars) bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0() bei System.Threading.Tasks.Task.Execute()

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Comments:12 (7 by maintainers)

github_iconTop GitHub Comments

1reaction
thailyncommented, Dec 13, 2018

This indeed appears to be problematic.

From what I’ve been able to figure out so far, the purpose of the Cloudflare DDoS protection splash screen (which you sometimes see when going to a Cloudflare-protected site) is designed so the browser performs some Javascript computation and sends it back to Cloudflare, “proving” it’s not a bot or something like that. You can see some more details in this blog post; it looks like the computation that was required in the past was a simple Javascript mathematical expression, but it’s since been obfuscated; when I went to pathofexile.com and looked at the source code of the CloudFlare page I got something like:

  (function(){
    var a = function() {try{return !!window.addEventListener} catch(e) {return !1} },
    b = function(b, c) {a() ? document.addEventListener("DOMContentLoaded", b, c) : document.attachEvent("onreadystatechange", b)};
    b(function(){
      var a = document.getElementById('cf-content');a.style.display = 'block';
      setTimeout(function(){
        var s,t,o,p,b,r,e,a,k,i,n,g,f, UtFxZSV={"Q":+((!+[]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![])+(+[])+(+[])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]))/+((!+[]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![])+(!+[]+!![])+(!+[]+!![])+(!+[]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]))};
        t = document.createElement('div');
        t.innerHTML="<a href='/'>x</a>";
        t = t.firstChild.href;r = t.match(/https?:\/\//)[0];
        t = t.substr(r.length); t = t.substr(0,t.length-1);
        a = document.getElementById('jschl-answer');
        f = document.getElementById('challenge-form');
        ;UtFxZSV.Q-=+((!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![])+(+[])+(!+[]+!![]+!![]+!![])+(!+[]+!![])+(!+[]+!![]+!![]+!![])+(!+[]+!![]+!![]))/+((+!![]+[])+(!+[]+!![]+!![]+!![]+!![]+!![])+(+!![])+(+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]));a.value = +UtFxZSV.Q.toFixed(10) + t.length; '; 121'
        f.action += location.hash;
        f.submit();
      }, 4000);
    }, false);
  })();

We’ll need to tackle this in different ways for each of the login methods we provide.

Password Authentication

Right now, when Procurement makes a web request, such as to https://www.pathofexile.com/login to log in, it does not execute any Javascript, as that is complicated and unnecessary for our needs thus far. It’s plausible we can use something like this CloudFlareUtilities library (available as a NuGet package), which uses pure C# to perform the necessary computations for CloudFlare, and manage any CloudFlare cookies. However, there are some complications.

  • This library works with HttpClient, which we do not use, so it is not a drop-in replacement or trivial addition to our code. In theory, however, the infrastructure we use is deprecated and, according to the .NET documentation, we should use HttpClient instead anyway.
  • This library requires .NET Standard 1.1 (possibly actually 1.6). Right now Procurement targets the .NET Framework 4 [Client Profile], and we would need to upgrade to .NET Framework 4.5 or 4.6.1 to support those version of the .NET Standard, respectively. Upgrading the targeted framework version could lead to unintentional bugs, and it’s risky to do this in the middle of a critical issue like this that is preventing us from fully using and testing Procurement.

Session ID

The CloudFlare DDoS protection works, in part, by keeping track of a client’s user-agent and several cookies. Right now when the Procurement user logs in via Session ID we require the him to first log in to pathofexile.com and dig around in the cookies for the POESESSID. Beyond requiring this, we would also need the user to supply:

  • The user-agent his browser used (so Procurement uses a matching one).
  • The additional CloudFlare cookies, whose exact names might not be known a priori.

There is a description of this process here, with screenshots.

As that link reveals, there have been other Path of Exile apps which have faced similar issues. The situation in that link was when poe.trade started using CloudFlare. We might be able to learn some techniques from what they or others have done, but I really hope will be able to delegate handling the CloudFlare DDoS page to an external dependency, so we aren’t required to keep updating it whenever CloudFlare changes their algorithm.

Of course, the best solution is for GGG to provide an actual login endpoint for their API so we don’t need to rely on screen-scraping the login response, but it’s not like it’s Christmas or anything. Or maybe they could use OAuth or something like what EVE Online has/had.

0reactions
Stickymaddnesscommented, Dec 15, 2018

Procurement 1.24.1 has been released, which fixes this issue when using SessionID

All credit to @aydjay and @thailyn for their work on getting this solved quickly.

Read more comments on GitHub >

github_iconTop Results From Across the Web

How to Fix the HTTP Error 503 Service Unavailable (6 Steps)
The 503 (Service Unavailable) status code indicates that the server is currently unable to handle the request due to a temporary overload or ......
Read more >
503 Service Unavailable Error: What It Is and How to Fix It
A 503 Service Unavailable Error is an HTTP response status code indicating that a server is temporarily unable to handle the request.
Read more >
How to Fix 503 Service Unavailable Error in 7 Steps
1. Check Resource Usage · 2. Check for Ongoing Maintenance · 3. Stop Running Processes · 4. Reset Firewall · 5. Check Server...
Read more >
HTTP Error 503 Service Unavailable Explained
A 503 Service Unavailable error means that the page or resource is unavailable. There are many reasons why a server might return a...
Read more >
503 Service Unavailable Error Message: What It Is and ...
The 503 Service Unavailable error is an HTTP status code that means a website's server is not available right now. Most of the...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found