klept0 / MS-Rewards-Farmer

A simple bot that uses Selenium to farm M$ Rewards in Python
MIT License
237 stars 49 forks source link

[BUG] Job freezes after "No email proof, all clear" even on fresh install #135

Closed aside6 closed 4 months ago

aside6 commented 4 months ago

Before submitting a bug report...

Title

Describe the bug

Job gives no errors but pauses indefinitely after the "No email proof, all clear" log

Copy and paste your error

2024-06-28 10:06:03,366 [INFO] [LOGIN] Entering email... 2024-06-28 10:06:07,524 [INFO] [LOGIN] Writing password... 2024-06-28 10:06:16,098 [INFO] [LOGIN] No email proof, all clear

Screenshots

2024-06-28 10:06:03,366 [INFO] [LOGIN] Entering email... 2024-06-28 10:06:07,524 [INFO] [LOGIN] Writing password... 2024-06-28 10:06:16,098 [INFO] [LOGIN] No email proof, all clear

Value of dashboard variable

https://gist.github.com/aside6/6867489b5e65df3dd7ff10d9fc3f5d99

SteveeeeeS commented 4 months ago

I get this also. I thought it was MFA related.. I found using -v and allowing it to open chrome. copy the link and use in another tab, i can then manually sign in and do mfa. usually fixes it but sometimes a faff.

cal4 commented 4 months ago

I've done some work with logging-in in #120. Might be worth a shot, but believe the code that's presenting this issue is new and not synced to my fork.

That being said, I've only tested the login with a US-based 2FA account.

Actually, just synced my fork and pushed my changes to a new branch in this repo, develop. Can you try checking that branch out and seeing if it resolves this issue?

@klept0 Went ahead and created a develop branch off of master with my changes in #120. Figure this would be a good place to try new features/fixes before merging to master. Helpful because that way people don't have to change remotes, but just branches. Lemme know if you're not cool with it, but think it'll be helpful. Can start doing releases as well with this branching model.

We'll just have to encourage PRs to be made from forked-main to forkee-develop (maybe there's a way to do this by default)

aside6 commented 4 months ago

No luck unfortunately. Getting this error:

2024-06-28 15:42:43,276 [INFO] [LOGIN] Entering email... 2024-06-28 15:42:56,492 [DEBUG] in exit exc_type=<class 'selenium.common.exceptions.TimeoutException'> exc_value=Message: Stacktrace: GetHandleVerifier [0x0042C1C3+27395] (No symbol) [0x003C3DC4] (No symbol) [0x002C1B7F] (No symbol) [0x00302C65] (No symbol) [0x00302D3B] (No symbol) [0x0033EC82] (No symbol) [0x003239E4] (No symbol) [0x0033CB24] (No symbol) [0x00323736] (No symbol) [0x002F7541] (No symbol) [0x002F80BD] GetHandleVerifier [0x006E3A93+2876371] GetHandleVerifier [0x00737F5D+3221661] GetHandleVerifier [0x004AD634+556916] GetHandleVerifier [0x004B474C+585868] (No symbol) [0x003CCE04] (No symbol) [0x003C9818] (No symbol) [0x003C99B7] (No symbol) [0x003BBF0E] BaseThreadInitThunk [0x74E87BA9+25] RtlInitializeExceptionChain [0x76F8C10B+107] RtlClearBits [0x76F8C08F+191] traceback=<traceback object at 0x0000015D9B14ABC0> 2024-06-28 15:42:56,569 [ERROR] Traceback (most recent call last): File "C:\code\rewards2\main.py", line 39, in main earned_points = executeBot(currentAccount, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\code\rewards2\main.py", line 213, in executeBot startingPoints = accountPointsCounter = Login(desktopBrowser, args).login() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\code\rewards2\src\login.py", line 30, in login self.executeLogin() File "C:\code\rewards2\src\login.py", line 49, in executeLogin self.utils.waitUntilVisible(By.ID, "pushNotificationsTitle", 10) File "C:\code\rewards2\src\utils.py", line 64, in waitUntilVisible return WebDriverWait(self.webdriver, timeToWait).until( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\bdero\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\support\wait.py", line 105, in until raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message: Stacktrace: GetHandleVerifier [0x0042C1C3+27395] (No symbol) [0x003C3DC4] (No symbol) [0x002C1B7F] (No symbol) [0x00302C65] (No symbol) [0x00302D3B] (No symbol) [0x0033EC82] (No symbol) [0x003239E4] (No symbol) [0x0033CB24] (No symbol) [0x00323736] (No symbol) [0x002F7541] (No symbol) [0x002F80BD] GetHandleVerifier [0x006E3A93+2876371] GetHandleVerifier [0x00737F5D+3221661] GetHandleVerifier [0x004AD634+556916] GetHandleVerifier [0x004B474C+585868] (No symbol) [0x003CCE04] (No symbol) [0x003C9818] (No symbol) [0x003C99B7] (No symbol) [0x003BBF0E] BaseThreadInitThunk [0x74E87BA9+25] RtlInitializeExceptionChain [0x76F8C10B+107] RtlClearBits [0x76F8C08F+191]

aside6 commented 4 months ago

In case you need the full debug log if you want to investigate further, here are the initial lines:

2024-06-28 16:04:08,739 [INFO] ****almostrecords@outlook.com**** 2024-06-28 16:04:08,739 [DEBUG] in init

DevTools listening on ws://127.0.0.1:64217/devtools/browser/55313201-9420-446a-aad8-ed494cf1c4ae 2024-06-28 16:04:19,692 [INFO] Screen size: 2136x1185 2024-06-28 16:04:19,692 [INFO] Device size: 2081x1034 2024-06-28 16:04:19,724 [DEBUG] out init 2024-06-28 16:04:19,724 [DEBUG] in enter 2024-06-28 16:04:34,169 [INFO] [LOGIN] Logging-in...

cal4 commented 4 months ago

Nice catch, guessing you don't have two-factor enabled?

Anyways that immediate issue should be fixed if you want to pull and try again

aside6 commented 4 months ago

Got a bit further, here's the next error. By the way, I appreciate you so much for the time you've spent already! I'm a senior level developer myself, but in the .Net/Angular stack. Haven't done this kind of scraping work in a very long time, I applaud you and everyone else for your hard work in this tedious space, it's not easy!!

2024-06-28 18:13:53,876 [INFO] ****almostrecords@outlook.com**** 2024-06-28 18:13:53,877 [DEBUG] in init

DevTools listening on ws://127.0.0.1:61980/devtools/browser/b49dc207-9181-4aca-80b8-ce8eaef1cbf1 2024-06-28 18:14:05,677 [INFO] Screen size: 1107x950 2024-06-28 18:14:05,678 [INFO] Device size: 1052x799 2024-06-28 18:14:05,712 [DEBUG] out init 2024-06-28 18:14:05,713 [DEBUG] in enter 2024-06-28 18:14:20,385 [INFO] [LOGIN] Logging-in... 2024-06-28 18:14:20,474 [INFO] [LOGIN] Entering email... 2024-06-28 18:14:33,735 [DEBUG] isTwoFactorEnabled = False 2024-06-28 18:14:33,774 [INFO] [LOGIN] Entering password... 2024-06-28 18:14:49,798 [DEBUG] in exit exc_type=<class 'selenium.common.exceptions.TimeoutException'> exc_value=Message: Stacktrace: GetHandleVerifier [0x0041C1C3+27395] (No symbol) [0x003B3DC4] (No symbol) [0x002B1B7F] (No symbol) [0x002F2C65] (No symbol) [0x002F2D3B] (No symbol) [0x0032EC82] (No symbol) [0x003139E4] (No symbol) [0x0032CB24] (No symbol) [0x00313736] (No symbol) [0x002E7541] (No symbol) [0x002E80BD] GetHandleVerifier [0x006D3A93+2876371] GetHandleVerifier [0x00727F5D+3221661] GetHandleVerifier [0x0049D634+556916] GetHandleVerifier [0x004A474C+585868] (No symbol) [0x003BCE04] (No symbol) [0x003B9818] (No symbol) [0x003B99B7] (No symbol) [0x003ABF0E] BaseThreadInitThunk [0x74E87BA9+25] RtlInitializeExceptionChain [0x76F8C10B+107] RtlClearBits [0x76F8C08F+191] traceback=<traceback object at 0x0000018B917C0900> 2024-06-28 18:14:50,012 [ERROR] Traceback (most recent call last): File "C:\code\rewards2\main.py", line 39, in main earned_points = executeBot(currentAccount, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\code\rewards2\main.py", line 213, in executeBot startingPoints = accountPointsCounter = Login(desktopBrowser, args).login() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\code\rewards2\src\login.py", line 30, in login self.executeLogin() File "C:\code\rewards2\src\login.py", line 81, in executeLogin self.utils.waitUntilVisible( File "C:\code\rewards2\src\utils.py", line 65, in waitUntilVisible return WebDriverWait(self.webdriver, timeToWait).until( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\bdero\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\support\wait.py", line 105, in until raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message: Stacktrace: GetHandleVerifier [0x0041C1C3+27395] (No symbol) [0x003B3DC4] (No symbol) [0x002B1B7F] (No symbol) [0x002F2C65] (No symbol) [0x002F2D3B] (No symbol) [0x0032EC82] (No symbol) [0x003139E4] (No symbol) [0x0032CB24] (No symbol) [0x00313736] (No symbol) [0x002E7541] (No symbol) [0x002E80BD] GetHandleVerifier [0x006D3A93+2876371] GetHandleVerifier [0x00727F5D+3221661] GetHandleVerifier [0x0049D634+556916] GetHandleVerifier [0x004A474C+585868] (No symbol) [0x003BCE04] (No symbol) [0x003B9818] (No symbol) [0x003B99B7] (No symbol) [0x003ABF0E] BaseThreadInitThunk [0x74E87BA9+25] RtlInitializeExceptionChain [0x76F8C10B+107] RtlClearBits [0x76F8C08F+191]

2024-06-28 18:14:50,474 [INFO] [POINTS] Data saved for the next day.

cal4 commented 4 months ago

Thanks!

Just pushed what I think should be a fix. My guess is the code's not accounting for the keep-me-signed-in form, it should now.

SteveeeeeS commented 4 months ago

how do i get that update, the code says was edited 4 days ago. Sorry, prob being a noob

aside6 commented 4 months ago

Still erroring out unfortunately. I'm realizing I need to actually set up a good git clone and start fiddling with it in VSCode myself. It'd be good for me to learn more about the ins and outs of Python debugging.

Alas, here's the error I'm getting if that's at all helpful:

2024-06-28 20:47:46,943 [DEBUG] in init

DevTools listening on ws://127.0.0.1:60668/devtools/browser/e4b0dd76-39ab-4e53-be19-bac7bd8dfd78 2024-06-28 20:47:58,378 [INFO] Screen size: 2220x1135 2024-06-28 20:47:58,378 [INFO] Device size: 2165x984 2024-06-28 20:47:58,409 [DEBUG] out init 2024-06-28 20:47:58,409 [DEBUG] in enter 2024-06-28 20:48:13,251 [INFO] [LOGIN] Logging-in... 2024-06-28 20:48:13,294 [INFO] [LOGIN] Entering email... 2024-06-28 20:48:23,569 [DEBUG] isTwoFactorEnabled = False 2024-06-28 20:48:23,590 [INFO] [LOGIN] Entering password... 2024-06-28 20:48:37,259 [DEBUG] in exit exc_type=<class 'selenium.common.exceptions.TimeoutException'> exc_value=Message: Stacktrace: GetHandleVerifier [0x010FC1C3+27395] (No symbol) [0x01093DC4] (No symbol) [0x00F91B7F] (No symbol) [0x00FD2C65] (No symbol) [0x00FD2D3B] (No symbol) [0x0100EC82] (No symbol) [0x00FF39E4] (No symbol) [0x0100CB24] (No symbol) [0x00FF3736] (No symbol) [0x00FC7541] (No symbol) [0x00FC80BD] GetHandleVerifier [0x013B3A93+2876371] GetHandleVerifier [0x01407F5D+3221661] GetHandleVerifier [0x0117D634+556916] GetHandleVerifier [0x0118474C+585868] (No symbol) [0x0109CE04] (No symbol) [0x01099818] (No symbol) [0x010999B7] (No symbol) [0x0108BF0E] BaseThreadInitThunk [0x74E87BA9+25] RtlInitializeExceptionChain [0x76F8C10B+107] RtlClearBits [0x76F8C08F+191] traceback=<traceback object at 0x00000200A3158F80> 2024-06-28 20:48:37,476 [ERROR] Traceback (most recent call last): File "C:\code\rewards2\main.py", line 39, in main earned_points = executeBot(currentAccount, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\code\rewards2\main.py", line 213, in executeBot startingPoints = accountPointsCounter = Login(desktopBrowser, args).login() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\code\rewards2\src\login.py", line 29, in login self.executeLogin() File "C:\code\rewards2\src\login.py", line 74, in executeLogin self.utils.waitUntilVisible( File "C:\code\rewards2\src\utils.py", line 65, in waitUntilVisible return WebDriverWait(self.webdriver, timeToWait).until( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\bdero\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\support\wait.py", line 105, in until raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message: Stacktrace: GetHandleVerifier [0x010FC1C3+27395] (No symbol) [0x01093DC4] (No symbol) [0x00F91B7F] (No symbol) [0x00FD2C65] (No symbol) [0x00FD2D3B] (No symbol) [0x0100EC82] (No symbol) [0x00FF39E4] (No symbol) [0x0100CB24] (No symbol) [0x00FF3736] (No symbol) [0x00FC7541] (No symbol) [0x00FC80BD] GetHandleVerifier [0x013B3A93+2876371] GetHandleVerifier [0x01407F5D+3221661] GetHandleVerifier [0x0117D634+556916] GetHandleVerifier [0x0118474C+585868] (No symbol) [0x0109CE04] (No symbol) [0x01099818] (No symbol) [0x010999B7] (No symbol) [0x0108BF0E] BaseThreadInitThunk [0x74E87BA9+25] RtlInitializeExceptionChain [0x76F8C10B+107] RtlClearBits [0x76F8C08F+191]

2024-06-28 20:48:37,997 [INFO] [POINTS] Data saved for the next day.

aside6 commented 4 months ago

I decided to try to be useful and actually setup a VS Code environment so I could properly debug the issue locally. Turns out the issue is related to a new screen after logging in.. I was getting the "Lets protect your account" screen suddenly asking for me to add in a backup email address, which the code doesn't account for. I might try to add that in as a check in the coming days (to show a message to the user that they will need to set this up), but anyone else facing the same issue can just do this manually in the browser and retry for now :)

aside6 commented 4 months ago

I think this bug can be closed as it's not so much a bug as a possible new nice-to-have feature for others with relatively new accounts that aren't set up with a backup email/phone