jdholtz / auto-southwest-check-in

A Python script that automatically checks in to your Southwest flight 24 hours beforehand.
GNU General Public License v3.0
440 stars 84 forks source link

Failed to log in, Reason: Unknown #222

Closed duronald closed 7 months ago

duronald commented 7 months ago

Version

7.2

Browser Version

121.0.6167.161

Description

Running script fails to login with a Reason: Unknown after updating to 7.2 from 7.1.

To Reproduce

Run script locally with username and password.

Expected Behavior

No response

Relevant logs and program output

2024-02-12 13:22:04 DEBUG MainProcess[log:23]: Initialized the application
2024-02-12 13:22:04 DEBUG MainProcess[main:112]: Auto-Southwest Check-In v7.2
2024-02-12 13:22:04 DEBUG MainProcess[main:113]: Called with 2 arguments
2024-02-12 13:22:04 DEBUG MainProcess[config:108]: Initializing configuration file
2024-02-12 13:22:04 DEBUG MainProcess[config:137]: Reading the configuration file
2024-02-12 13:22:04 DEBUG MainProcess[config:141]: No configuration file found. Using defaults
2024-02-12 13:22:04 DEBUG MainProcess[config:151]: Reading configuration from environment variables
2024-02-12 13:22:04 DEBUG MainProcess[config:120]: Creating configurations for 1 accounts
2024-02-12 13:22:04 DEBUG MainProcess[main:129]: Account added through CLI arguments
2024-02-12 13:22:04 DEBUG MainProcess[main:142]: Monitoring 1 accounts and 0 reservations
2024-02-12 13:22:04 DEBUG Process-1[reservation_monitor:154]: Acquiring lock...
2024-02-12 13:22:04 DEBUG Process-1[reservation_monitor:156]: Lock acquired
2024-02-12 13:22:04 DEBUG Process-1[reservation_monitor:178]: Retrieving reservations for account
2024-02-12 13:22:04 DEBUG Process-1[webdriver:103]: Starting webdriver for current session

DevTools listening on ws://127.0.0.1:50764/devtools/browser/9c6b041e-70de-48da-898b-3aaf2eb43d7d
2024-02-12 13:22:14 DEBUG Process-1[webdriver:119]: Using browser version: 121.0.6167.161
2024-02-12 13:22:14 DEBUG Process-1[webdriver:123]: Loading Southwest Check-In page
2024-02-12 13:22:17 DEBUG Process-1[webdriver:80]: Logging into account to get a list of reservations and valid headers
2024-02-12 13:22:18 DEBUG Process-1[webdriver:152]: Waiting for headers_set to be set
2024-02-12 13:22:18 DEBUG Process-1[webdriver:156]: headers_set set successfully
2024-02-12 13:22:19 DEBUG Process-1[webdriver:152]: Waiting for login_request_id to be set
2024-02-12 13:22:19 DEBUG Process-1[webdriver:144]: Login response has been received
2024-02-12 13:22:20 DEBUG Process-1[webdriver:156]: login_request_id set successfully
2024-02-12 13:22:22 DEBUG Process-1[webdriver:212]: Logging in failed for an unknown reason
2024-02-12 13:22:22 DEBUG Process-1[reservation_monitor:193]: Error logging in. Reason: Unknown. Status code: 400. Exiting
2024-02-12 13:22:22 DEBUG Process-1[notification_handler:83]: Sending failed login notification...
Failed to log in to account with username ******. Reason: Unknown. Status code: 400.

Additional context

Logging into Southwest normally with the same credentials works fine.

No response

jdholtz commented 7 months ago

If you switch back to v7.1 and run the script with the same exact arguments and config file do you get the same error? It may throw a traceback though since that was fixed in v7.2. You can switch back by doing git checkout v7.1

Also, can you send the response you get when adding print(response) to line 208 of lib/webdriver.py (before the if statement)?

duronald commented 7 months ago

On 7.1 I get a traceback.

2024-02-12 14:55:23 DEBUG MainProcess[log:23]: Initialized the application 2024-02-12 14:55:23 DEBUG MainProcess[main:112]: Auto-Southwest Check-In v7.1 2024-02-12 14:55:23 DEBUG MainProcess[main:113]: Called with 2 arguments 2024-02-12 14:55:24 DEBUG MainProcess[config:107]: Initializing configuration file 2024-02-12 14:55:24 DEBUG MainProcess[config:135]: Reading the configuration file 2024-02-12 14:55:24 DEBUG MainProcess[config:139]: No configuration file found. Using defaults 2024-02-12 14:55:24 DEBUG MainProcess[config:118]: Creating configurations for 1 accounts 2024-02-12 14:55:24 DEBUG MainProcess[main:129]: Account added through CLI arguments 2024-02-12 14:55:24 DEBUG MainProcess[main:142]: Monitoring 1 accounts and 0 reservations 2024-02-12 14:55:26 DEBUG Process-1[reservation_monitor:154]: Acquiring lock... 2024-02-12 14:55:26 DEBUG Process-1[reservation_monitor:156]: Lock acquired 2024-02-12 14:55:26 DEBUG Process-1[reservation_monitor:178]: Retrieving reservations for account 2024-02-12 14:55:26 DEBUG Process-1[webdriver:103]: Starting webdriver for current session

DevTools listening on ws://127.0.0.1:51271/devtools/browser/3ac48716-1ad3-4b72-8b69-0f3d884d700e 2024-02-12 14:55:36 DEBUG Process-1[webdriver:119]: Using browser version: 121.0.6167.161 2024-02-12 14:55:36 DEBUG Process-1[webdriver:123]: Loading Southwest Check-In page 2024-02-12 14:55:40 DEBUG Process-1[webdriver:80]: Logging into account to get a list of reservations and valid headers 2024-02-12 14:55:41 DEBUG Process-1[webdriver:152]: Waiting for headers_set to be set 2024-02-12 14:55:41 DEBUG Process-1[webdriver:156]: headers_set set successfully 2024-02-12 14:55:42 DEBUG Process-1[webdriver:144]: Login response has been received 2024-02-12 14:55:47 DEBUG Process-1[webdriver:186]: Login form failed to submit. Clicking login button again Process Process-1: Traceback (most recent call last): File "C:\Users\duron\Desktop\auto-southwest-check-in-7.1\lib\webdriver.py", line 184, in _click_login_button seleniumbase_actions.wait_for_element_not_visible(driver, login_button, timeout=5) File "C:\Users\duron\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\seleniumbase\fixtures\page_actions.py", line 1030, in wait_for_element_not_visible timeout_exception(Exception, message) File "C:\Users\duron\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\seleniumbase\fixtures\page_actions.py", line 266, in timeout_exception raise exc(msg) Exception: Element {button#login-btn} was still visible after 5 seconds!

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.2288.0_x64__qbz5n2kfra8p0\Lib\multiprocessing\process.py", line 314, in _bootstrap self.run() File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.2288.0_x64__qbz5n2kfra8p0\Lib\multiprocessing\process.py", line 108, in run self._target(*self._args, *self._kwargs) File "C:\Users\duron\Desktop\auto-southwest-check-in-7.1\lib\reservation_monitor.py", line 42, in monitor self._monitor() File "C:\Users\duron\Desktop\auto-southwest-check-in-7.1\lib\reservation_monitor.py", line 157, in _monitor reservations, skip_scheduling = self._get_reservations() ^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\duron\Desktop\auto-southwest-check-in-7.1\lib\reservation_monitor.py", line 182, in _get_reservations reservations = webdriver.get_reservations(self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\duron\Desktop\auto-southwest-check-in-7.1\lib\webdriver.py", line 93, in get_reservations self._wait_for_login(driver, account_monitor) File "C:\Users\duron\Desktop\auto-southwest-check-in-7.1\lib\webdriver.py", line 163, in _wait_for_login self._click_login_button(driver) File "C:\Users\duron\Desktop\auto-southwest-check-in-7.1\lib\webdriver.py", line 187, in _click_login_button driver.click(login_button) File "C:\Users\duron\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\seleniumbase\core\sb_driver.py", line 59, in click page_actions.click(self.driver, args, **kwargs) File "C:\Users\duron\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\seleniumbase\fixtures\page_actions.py", line 1526, in click element.click() File "C:\Users\duron\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\selenium\webdriver\remote\webelement.py", line 94, in click self._execute(Command.CLICK_ELEMENT) File "C:\Users\duron\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\selenium\webdriver\remote\webelement.py", line 395, in _execute return self._parent.execute(command, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\duron\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\selenium\webdriver\remote\webdriver.py", line 348, in execute self.error_handler.check_response(response) File "C:\Users\duron\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\selenium\webdriver\remote\errorhandler.py", line 229, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element is not clickable at point (704, 300). Other element would receive the click:

(Session info: chrome=121.0.6167.161) Stacktrace: GetHandleVerifier [0x00007FF7DA3F5E42+3538674] (No symbol) [0x00007FF7DA014C02] (No symbol) [0x00007FF7D9EC5AEB] (No symbol) [0x00007FF7D9F133E4] (No symbol) [0x00007FF7D9F11122] (No symbol) [0x00007FF7D9F0E884] (No symbol) [0x00007FF7D9F0D5A9] (No symbol) [0x00007FF7D9F01950] (No symbol) [0x00007FF7D9F2F0AA] (No symbol) [0x00007FF7D9F0124A] (No symbol) [0x00007FF7D9F2F2C0] (No symbol) [0x00007FF7D9F4BDE3] (No symbol) [0x00007FF7D9F2EE53] (No symbol) [0x00007FF7D9EFF514] (No symbol) [0x00007FF7D9F00631] GetHandleVerifier [0x00007FF7DA426CAD+3738973] GetHandleVerifier [0x00007FF7DA47C506+4089270] GetHandleVerifier [0x00007FF7DA474823+4057299] GetHandleVerifier [0x00007FF7DA145C49+720121] (No symbol) [0x00007FF7DA02126F] (No symbol) [0x00007FF7DA01C304] (No symbol) [0x00007FF7DA01C432] (No symbol) [0x00007FF7DA00BD04] BaseThreadInitThunk [0x00007FFA495F257D+29] RtlUserThreadStart [0x00007FFA4AB0AA58+40]

The output of response at line 208 is

{'code': 400618202, 'requestId': 'f0bcf761-3962-4f82-a51f-ef6b88cdbc55:0.da17dd17.1707778738.3f53958c:mweb', 'infoList': [''], 'message': '', 'error': 'invalid_grant', 'httpStatusCode': 'BAD_REQUEST'}

jdholtz commented 7 months ago

I'm unsure what that error code is in the response and since this deals with credentials, it's hard for me to find out what the issue is independently. Can you put the line driver.save_screenshot("error.png") on line 181 of lib/webdriver.py and either send the image here (blurred to not show sensitive information) or the error message that shows up in the popup?

Also, are you inputting the credentials through the command line or config file. If it is through the command line, I would switch to using the config file in case there are any special characters in your username/password.

duronald commented 7 months ago

Will give this a stab when I have time today. I am putting in credentials through the config files. My issue is similar to some of the recently reported issues as well so I believe Southwest did something.

duronald commented 7 months ago
error
duronald commented 7 months ago

Workaround is to remove all special chars from password. Seems like 7.2 doesn't like special chars whether in the config or the arguments.

jdholtz commented 7 months ago

@duronald I am now getting this issue too. However, I don't think this is an error with special characters in the password. I have an account that isn't running into this issue with special characters and was able to locally fix the issue seen in #223.

I did look up the error which was a Maximum number of retries and people suggested to reset the password (which you already did and it fixed the issue). This may actually be Southwest locking the account for failing to log in too many times (due to #223)--hopefully it isn't the website detecting the script and flagging the account, but it doesn't seem to be as a password reset worked for you.

Did you hit an Invalid credentials issue a lot before getting this error? It may explain why Southwest locked your account.

I'll reset my password and if it fixes the issue for me, I'll close this and the focus can be directed to #223.

duronald commented 7 months ago

Yes, i was getting a lot of invalid credentials issues. The issue is the same as 223 effectively.

jdholtz commented 7 months ago

I reset my password which also fixed the issue. The underlying issue is probably #223 which was just fixed. Thanks for helping debug @duronald!