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 with 429 #80

Closed samdatkins closed 1 year ago

samdatkins commented 1 year ago

Description

Yesterday I started getting the following error consistently:

Failed to log in to account with username[redacted]. Reason: Unknown. Status code: 429.

Haven't pulled newer code or changed my configuration in anyway. Anyone else seeing this?

Out of paranoia I've also tried a VPN to ensure I haven't been denylisted and I got the same results. Haven't gone as far as looking at the response yet at this point.

To Reproduce

Run docker run -d jdholtz/auto-southwest-check-in [username] [password]

Expected Behavior

No response

Version

No response

Additional context

No response

samdatkins commented 1 year ago

In case it's relevant, here's the result I get from within docker when I execute chromedriver:


Starting ChromeDriver 110.0.5481.177 (f34f7ab2d4ca4ad498ef42aeba4f4eb2c1392d63-refs/branch-heads/5481@{#1239}) on port 9515...```
jdholtz commented 1 year ago

I am also getting this error in a Docker container. What's strange is that I am not getting the error when running it locally though (with the same ChromeDriver version). However, I also had a check-in fail this morning too, both in the Docker image and running it locally (on the POST request).

I'll look into this and see what is going on.

derrick-tao commented 1 year ago

I had 3 checkins scheduled all on the same flight however only 1 was successfully checked in. This is my first time using so I'm not sure how well multiple checkins worked in the past. Maybe southwest servers are trying to stop simultaneous requests to checkin at the same time? here's my log line Failed to make request: Too Many Requests 429.

edit: i'm using docker if that makes a difference

jdholtz commented 1 year ago

Something with Southwest has definitely changed because simultaneous check-ins did work in the past.

jdholtz commented 1 year ago

Can anyone get it to work by running it locally (not with Docker)?

BDO811 commented 1 year ago

I am doing it locally and get the error message

On Thu, Apr 27, 2023 at 9:35 PM Joey Holtzman @.***> wrote:

Can anyone get it to work by running it locally (not with Docker)?

— Reply to this email directly, view it on GitHub https://github.com/jdholtz/auto-southwest-check-in/issues/80#issuecomment-1526895707, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJMJDPQO37T2C346AJQLFSTXDMUGBANCNFSM6AAAAAAXOOTN4A . You are receiving this because you are subscribed to this thread.Message ID: @.***>

PaulMcCarthy401 commented 1 year ago

At first I was getting the same 429 error running locally, but it ran successfully once I changed the user agent string in webdriver.py to the actual one that my Chrome browser supplies.

derrick-tao commented 1 year ago

Additional data points: Without changing anything in the code, I was able to checkin to 3 passengers all on the same flight using 3 individual docker containers. While this is a quick workaround, the issue with simultaneous checkin on the same docker container mentioned earlier probably still exist.

jdholtz commented 1 year ago

At first I was getting the same 429 error running locally, but it ran successfully once I changed the user agent string in webdriver.py to the actual one that my Chrome browser supplies.

Actually, there was a similar issue to this one(#58). I just removed the User Agent altogether and that seemed to work for everyone who was having issues in that thread. However, the change only resides in the develop branch currently. For anyone having issues, can you pull the latest develop image (use the :develop tag) and see if you are still running into the same issue?

samdatkins commented 1 year ago

At first I was getting the same 429 error running locally, but it ran successfully once I changed the user agent string in webdriver.py to the actual one that my Chrome browser supplies.

Actually, there was a similar issue to this one(#58). I just removed the User Agent altogether and that seemed to work for everyone who was having issues in that thread. However, the change only resides in the develop branch currently. For anyone having issues, can you pull the latest develop image (use the :develop tag) and see if you are still running into the same issue?

Switching to the develop image fixed it for me, and I’ve got 5 or 6 users in one config/container!

BDO811 commented 1 year ago

Can someone excision how to do this for a noobie?

On Sun, Apr 30, 2023 at 7:24 PM atkins @.***> wrote:

At first I was getting the same 429 error running locally, but it ran successfully once I changed the user agent string in webdriver.py to the actual one that my Chrome browser supplies.

Actually, there was a similar issue to this one(#58 https://github.com/jdholtz/auto-southwest-check-in/issues/58). I just removed the User Agent altogether and that seemed to work for everyone who was having issues in that thread. However, the change only resides in the develop branch currently. For anyone having issues, can you pull the latest develop image (use the :develop tag) and see if you are still running into the same issue?

Switching to the develop image fixed it for me, and I’ve got 5 or 6 users in one config/container!

— Reply to this email directly, view it on GitHub https://github.com/jdholtz/auto-southwest-check-in/issues/80#issuecomment-1529189515, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJMJDPWEUO6VSPAJGGX7LDTXD37CBANCNFSM6AAAAAAXOOTN4A . You are receiving this because you are subscribed to this thread.Message ID: @.***>

jdholtz commented 1 year ago

If you have docker installed, just run docker pull jdholtz/auto-southwest-check-in:develop. If you have cloned the repository with Git, do git pull && git checkout develop.

zyonse commented 1 year ago

Develop branch also fixed this issue for me.

jdholtz commented 1 year ago

Thanks for testing with the develop branch everyone. I will close this issue and hopefully release the next version soon!

himnim commented 1 year ago

Seems this was implemented in 4.0 which I'm running in Docker, but I received the error early this morning at a random time (config loaded and successful 5 hours prior). I have retrieval interval set to 1 while testing - would that mean it was logging into accounts and refreshing every 1h and this was just 1 failure over ~8 hours/attempts? Happy to grab any logs needed.

jdholtz commented 1 year ago

Is it a recurring issue @himnim? If the retrieval interval is 1, that means it checks every account/flight every hour

himnim commented 1 year ago

According to the logs, it only happened once. Could chalk it off as a one-off - I'll keep monitoring and let you know if it happens more frequently.

jdholtz commented 1 year ago

I can make a 429 error not crash the program, just skip execution (or retry it). Then that issue shouldn’t matter much.

himnim commented 1 year ago

I see, so once you hit the 429 error, the only resolution is to restart the container? Seems that way, as I had 2 accounts and 1 encountered the error but the other didn't, and when testing with a new booking on the account with the error, it did not pull the flight/attempt to login after another hour.

jdholtz commented 1 year ago

Yes. In Python, it appears that an exception raised by a child process also stops the main process — at least with the way it’s set up in the script.

himnim commented 1 year ago

Just updating here as both my accounts encountered 429 error over the weekend.

jdholtz commented 1 year ago

Thanks for following up. I will implement better 429 handling soon. For now, you can probably just use longer intervals as I don’t really see an advantage of having the interval so short.

jdholtz commented 1 year ago

Hey @himnim, I added 429 error handling in the latest commit on the develop branch. Now, the script will just skip flight retrieval once for that account when a 429 error occurs instead of crashing the entire script.

himnim commented 1 year ago

Thanks, this is actually quite topical because I was editing my config today to add flights via confirmation number for my sister-in-law and now the 2 accounts listed in config are getting 429 error immediately upon restarting the Docker container. Would that be a possible system block on SW's end? I may have to revert to confirmation number config instead of account config if so. I'm able to login to my account fine on an interactive browser

jdholtz commented 1 year ago

Are you only encountering 429’s in account mode? It probably isn’t something Southwest is blocking because you are able to login on their website just fine.

himnim commented 1 year ago

Yes, my accounts are getting 429 after restarting the container (so they're effectively not working), my flights via confirmation number pulled up fine.

image

jdholtz commented 1 year ago

Are you using the latest version (4.1)?

himnim commented 1 year ago

No, didn't realize you released a new version yesterday - will look at updating today