digitalcreations / MaxTo

Public issue tracker for MaxTo
https://docs.maxto.net
76 stars 5 forks source link

MaxTo unlicense itself if you startup connected to a VPN #545

Closed buddyw closed 4 years ago

buddyw commented 4 years ago

If you startup your machine connected to a VPN service, Maxto unlicenses itself and will not re-license until you disconnect from the service and enter your key. When I go to the website to get the key, it also makes me solve a captcha when I'm connected to the VPN, so my guess is that you are using cloudflare or something to front end the license check and the captcha is breaking the process.

To Reproduce Steps to reproduce the behavior:

  1. connect to a VPN service or have an IP that requires a CAPTCHA on the website
  2. launch MaxTo
  3. You get a prompt to setup and license MaxTo

Expected behavior MaxTo should either skip license check when there's a captcha, or the captcha should be avoided altogether

System information:

Additional context I wasn't able to find a log file.

vegardlarsen commented 4 years ago

The log files should be in %AppData%\MaxTo.

You are exactly right in regards to Cloudflare, we do use it, but we hadn't considered that it may put up a Captcha between the user and us. Could you check to see which HTTP status code Cloudflare returns when it shows the Captcha? I can't find it in their docs easily at the moment.

buddyw commented 4 years ago

I found the log. I'd forgotten to check appdata\roaming\

2020-03-17 14:49:11 [Core@2.0.1.499] [Information] Logger setup (online logging: True, process #20552) 2020-03-17 14:49:12 [Core@2.0.1.499] [Information] Found no specified configuration location file, using default settings location "C:\Users\famil\AppData\Roaming\MaxTo" 2020-03-17 14:49:13 [Core@2.0.1.499] [Information] Logger setup (online logging: True, process #20552) 2020-03-17 14:49:13 [Core@2.0.1.499] [Information] Read shims from "C:\Users\famil\AppData\Local\MaxTo\shims.json" 2020-03-17 14:49:13 [Core@2.0.1.499] [Information] Squirrel-installed app, so rewriting CLI batch file. 2020-03-17 14:50:29 [Core@2.0.1.499] [Warning] Could not update application System.Net.WebException: The remote server returned an error: (403) Forbidden. at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result) at System.Net.WebClient.DownloadBitsResponseCallback(IAsyncResult result) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Squirrel.Utility.d43`1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Squirrel.FileDownloader.d3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Squirrel.UpdateManager.CheckForUpdateImpl.d2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Squirrel.UpdateManager.d7.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Squirrel.Utility.d43`1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Squirrel.EasyModeMixin.d0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at MaxTo.Core.Update.UpdateService.d9.MoveNext() 2020-03-17 14:50:29 [Server@2.0.1.499] [Information] Logger setup (online logging: True, process #14364) 2020-03-17 14:50:29 [Core@2.0.1.499] [Information] Server up and running, client connected. 2020-03-17 14:50:30 [CompanionX86@2.0.1.499] [Information] Logger setup (online logging: True, process #3288) 2020-03-17 14:50:30 [Core@2.0.1.499] [Information] 4 processes started 2020-03-17 14:50:30 [CompanionX64@2.0.1.499] [Information] Logger setup (online logging: True, process #9000) 2020-03-17 14:50:30 [CompanionX86@2.0.1.499] [Information] Found no specified configuration location file, using default settings location "C:\Users\famil\AppData\Roaming\MaxTo" 2020-03-17 14:50:30 [CompanionX64@2.0.1.499] [Information] Found no specified configuration location file, using default settings location "C:\Users\famil\AppData\Roaming\MaxTo" 2020-03-17 14:50:30 [CompanionX64@2.0.1.499] [Information] Read shims from "C:\Users\famil\AppData\Local\MaxTo\shims.json" 2020-03-17 14:50:30 [CompanionX86@2.0.1.499] [Information] Read shims from "C:\Users\famil\AppData\Local\MaxTo\shims.json" 2020-03-17 14:50:30 [CompanionX86@2.0.1.499] [Information] Enabled hook 2020-03-17 14:50:30 [CompanionX64@2.0.1.499] [Information] Enabled hook 2020-03-17 14:50:30 [UserInterface@2.0.1.499] [Information] Logger setup (online logging: True, process #8200) 2020-03-17 14:50:31 [UserInterface@2.0.1.499] [Information] Activated "MaxTo.UI.ViewModels.NotificationIconViewModel" 2020-03-17 14:50:43 [Core@2.0.1.499] [Information] Logger setup (online logging: True, process #20552) 2020-03-17 14:50:43 [UserInterface@2.0.1.499] [Fatal] Unhandled exception "UnknownException" at " at DigitalCreations.Rett.LicenseManager`1.d8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at DigitalCreations.Rett.LicenseManager1.<GetCurrentLicense>d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at MaxTo.UI.AppBootstrapper.<OnStartup>d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.<ThrowAsync>b__6_0(Object state) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state) at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.ProcessQueue() at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg) at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame) at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame) at System.Windows.Application.RunDispatcher(Object ignore) at System.Windows.Application.RunInternal(Window window) at System.Windows.Application.Run(Window window) at MaxTo.UI.App.Main()" DigitalCreations.Rett.UnknownException: Something went wrong when validating the license key online. at DigitalCreations.Rett.LicenseManager1.d8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at DigitalCreations.Rett.LicenseManager`1.d6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at MaxTo.UI.AppBootstrapper.d9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.b6_0(Object state) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state) at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.ProcessQueue() at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg) at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame) at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame) at System.Windows.Application.RunDispatcher(Object ignore) at System.Windows.Application.RunInternal(Window window) at System.Windows.Application.Run(Window window) at MaxTo.UI.App.Main() 2020-03-17 14:51:04 [Server@2.0.1.499] [Warning] Lost connection to "e2455937-ec6d-4cfd-8f57-0511fe422e86" System.IO.IOException: Pipe is broken. at System.IO.Pipes.PipeStream.WinIOError(Int32 errorCode) at System.IO.Pipes.PipeStream.BeginWriteCore(Byte[] buffer, Int32 offset, Int32 count, AsyncCallback callback, Object state) at System.IO.Stream.<>c.b__53_0(Stream stream, ReadWriteParameters args, AsyncCallback callback, Object state) at System.Threading.Tasks.TaskFactory1.FromAsyncTrim[TInstance,TArgs](TInstance thisRef, TArgs args, Func5 beginMethod, Func`3 endMethod) at System.IO.Stream.BeginEndWriteAsync(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) at MaxTo.Core.Communication.NamedPipeServer.d__26.MoveNext() 2020-03-17 14:51:04 [Core@2.0.1.499] [Error] Process UserInterface exited without explanation

vegardlarsen commented 4 years ago

From the log, I am assuming this is a HTTP 403 response (because of this: The remote server returned an error: (403) Forbidden., which is for an update, not the actual license validation). This should be possible to detect and prevent invalidation.

Thank you for reporting this.

josezulu commented 4 years ago

I'm encountering this error too as of this morning.

When I go to the maxto.net website I can see Cloudflare asking me whether I'm a robot, and after clicking "no" and submit, the website works.

Is Maxto unable to phone home due to Cloudflare's new validation?

josezulu commented 4 years ago

I confirm this issue does not appear when I'm not using my PC via my VPN provider. Definitely it's due to the cloudflare validation required.

vegardlarsen commented 4 years ago

That may be. I don't think this is anything new on Cloudflare's end; but it may be exacerbated by the current health situation. Are you also using a VPN @josezulu?

josezulu commented 4 years ago

I'm sorry, we just crossed messages. Yes, I am also using a VPN.

josezulu commented 4 years ago

Checking my VPN provider it informed me that the current outgoing IP address was blacklisted. I connected to another VPN server and MaxTo works fine now.

Please add a failsafe so we don't get blocked with 403. Similar to when I don't have internet connection at all and MaxTo still works.

vegardlarsen commented 4 years ago

Having looked at this, we've already fixed this (#495). If you update to the preview versions, it should be OK.