Error 503: Server unavailable
See original GitHub issueJust 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, Nullable
1 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, Nullable
1 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, Nullable
1 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, Func
2 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](IEnumerable
1 source, Func2 selector) bei Procurement.ViewModel.LoginWindowViewModel.updateCharactersByLeague(List
1 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, Nullable
1 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, Nullable
1 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, Nullable
1 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, Nullable
1 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, Nullable
1 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, Nullable
1 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, Nullable
1 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, Nullable
1 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, Nullable
1 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, Nullable
1 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, Nullable
1 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, Nullable
1 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, Nullable
1 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, Func
2 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](IEnumerable
1 source, Func2 selector) bei Procurement.ViewModel.LoginWindowViewModel.updateCharactersByLeague(List
1 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, Func
2 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](IEnumerable
1 source, Func2 selector) bei Procurement.ViewModel.LoginWindowViewModel.updateCharactersByLeague(List
1 chars)
bei Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass29_0.<Login>b__0()
bei System.Threading.Tasks.Task.Execute()
Issue Analytics
- State:
- Created 5 years ago
- Comments:12 (7 by maintainers)
Top GitHub Comments
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: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.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 useHttpClient
instead anyway.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 thePOESESSID
. Beyond requiring this, we would also need the user to supply: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.
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.