epicgames-freegames-node: Failed to challenge captcha, redemption/purchase

Describe the bug

I receive a notification to solvea captcha for PURCHASE, despite solving the captcha, it gives me the error failed to challenge captcha, please try again later and does not complete the purchase. If I do so manaully (i.e., click the purchase button), another captcha pops up and fails in the same way.

Screenshots or Logs

Screen Shot 2023-05-25 at 12 23 20 PM Screen Shot 2023-05-25 at 12 23 36 PM

Configuration (please complete the following information):

  • Browser: Safari (mobile and desktop)
  • Hosting solution (e.g. reverse proxy, HTTPS/HTTP, caching, localhost): localhost

Additional context

I use Pi-Hole on my system with the upstream DNS pointing to OpenDNS. I have retried above steps with Pi-Hole disabled.

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Reactions: 2
  • Comments: 21 (7 by maintainers)

Commits related to this issue

Most upvoted comments

Yeah, this is gonna be a long term problem. There’s not a quick solution I can do to fix this. Sorry everyone.

Will be the same Problem as it was for my autoit script. directly triggering the html element/css selector causes epic to always refuse it as automation. simulating the mouse cursor and clicking on random spots at the buttons and also randomizing the mosue down + mouse up event times just fixed it. cheers

I published a dev version of v5 at ghcr.io/claabs/epicgames-freegames-node:dev. It’s a pretty big change and still a WIP, but luckily any existing config should work. Your existing cookies should work as well, although I can’t guarantee them forever. It uses the approach I mentioned earlier to send you checkout URLs.

In the case cookies don’t work, v5 introduces device code auth, which is convenient enough to re-login from a phone even. You can view a summary of changes in #352

The best workaround will probably be #312. Puppeteer isn’t built to dodge bot detection, so it’s probably time that battle ends.

For what it’s worth, I like the ‘lite-mode’ solution. While I can’t speak for others, this would eliminate the cognitive burden of me having to routinely remember to check EPIC for free games - I don’t mind losing some automation if the script’s job is to gather the free games into a cart and notify me when free stuff is available to collect. That would solve my issue and is still far less burdensome than having to remember to browse the website. Is this something we do on the client end, or that you’d have to do on the backend?

The best workaround will probably be #312. Puppeteer isn’t built to dodge bot detection, so it’s probably time that battle ends.

I did the same thing, and successfully logged in. However, I get a different screen when I click on the link to do the purchase

The purchase URL assumes you’re already logged in on the device you open it on. However, maybe there’s an account id parameter I can add to the URL for a smoother login flow.

testing v5, the login prompt works on my end, I’m also being sent the occasional purchase, however the purchase page that it is sending me is for a free game that I already purchased/redeemed manually previously.

I was able to recreate this issue by removing auth cookies completely, so I imagine something’s wrong with the cookie auth. Just a few questions about your scenario to narrow it down:

  • Do you have any previous cookies that it could be using?
  • What is your cron schedule? Running exactly every 8 hours could cause a race condition.

I added some debug log messages in the latest commit (https://github.com/claabs/epicgames-freegames-node/pull/352/commits/384bb7352eb7a1638f78c0354d4bf37aeb29e806), and it also throws an error if there’s no auth on the ownership request. That should hopefully catch the issue.