claabs / epicgames-freegames-node

Automatically login and find available free games the Epic Games Store. Sends you a prepopulated checkout link so you can complete the checkout after logging in. Supports multiple accounts, login sessions, and scheduled runs.
https://hub.docker.com/r/charlocharlie/epicgames-freegames
MIT License
1.33k stars 89 forks source link

Login returned error: Incorrect response #288

Closed bradgyton closed 1 year ago

bradgyton commented 1 year ago

Hey

Hosting the solution on docker, using the latest available version as of 21/11/2022

After completing the first login capcha it fails with error

[2022-11-21 23:25:23.622 +0000] WARN: Login returned error: Incorrect response. Please refresh the page.

I am able to log into epic games outside of this solution. i.e. on my personal computer

Below is my trace log

[2022-11-21 23:24:23.081 +0000] INFO: Checking free games for XXX

[2022-11-21 23:24:23.081 +0000] DEBUG: Launching a new browser

[2022-11-21 23:24:23.364 +0000] DEBUG: Logging in with puppeteer

[2022-11-21 23:24:23.364 +0000] DEBUG: Launching a new browser

[2022-11-21 23:24:23.608 +0000] DEBUG: Launching a new page

[2022-11-21 23:24:23.763 +0000] TRACE: devtools://devtools/bundled/inspector.html?ws=127.0.0.1:46275/devtools/page/XXX

[2022-11-21 23:24:38.784 +0000] DEBUG: Could not refresh credentials. Logging in fresh.

[2022-11-21 23:24:38.785 +0000] TRACE: Navigating to Epic Games login page

[2022-11-21 23:24:44.931 +0000] TRACE: Waiting for email field

[2022-11-21 23:24:44.947 +0000] TRACE: Filling email field

[2022-11-21 23:24:45.278 +0000] TRACE: Waiting for password field

[2022-11-21 23:24:45.304 +0000] TRACE: Filling password field

[2022-11-21 23:24:45.562 +0000] TRACE: Waiting for sign-in button

[2022-11-21 23:24:45.575 +0000] TRACE: Clicking sign-in button

[2022-11-21 23:24:46.676 +0000] TRACE: Waiting for sign-in result

[2022-11-21 23:24:46.677 +0000] TRACE: Waiting for hcaptcha iframe

[2022-11-21 23:24:48.246 +0000] TRACE: Captcha detected

[2022-11-21 23:24:48.255 +0000] INFO: Go to this URL and do something

url: "https://XXX/?targetId=XXX"

[2022-11-21 23:24:48.261 +0000] TRACE: Sending email

reason: "LOGIN"

[2022-11-21 23:24:48.448 +0000] DEBUG: Email sent.

[2022-11-21 23:24:48.448 +0000] TRACE: Waiting for MFA possibility

[2022-11-21 23:25:23.622 +0000] WARN: Login returned error: Incorrect response. Please refresh the page.

bradgyton commented 1 year ago

Updated to use charlocharlie/epicgames-freegames:bullseye-slim and problem solved!

RTFM! ;)

Serdans commented 1 year ago

I seem to be getting this issue as well, although using the bullseye-slim image didn't fix it for me. Could it also possibly be related to the IP you're hosting it on?

Serdans commented 1 year ago

I added a VPN to the container and... it worked. Cool!

claabs commented 1 year ago

I just pushed a change updating the Alpine Chromium version a bit. Maybe that will make the bot detection less sus and prevent this from popping up. Hard to know for sure, though.

Scales82 commented 1 year ago

Im having this problem on my setup too. No matter what I do on the captcha it fails and will not login.

nstrelow commented 1 year ago

I installed it as an addon inside Home Assistant OS. It just runs the docker container.

Same error.

claabs commented 1 year ago

I pushed an update that upgrades Chromium from 102 to 109 on the Alpine image. Maybe that was causing detection.

nstrelow commented 1 year ago

Hmm, I updated it, still does not work using https://github.com/alexbelgium/hassio-addons/tree/master/epicgamesfree

Might be a limitation on the setup. Using a Raspberry Pi 4 with Home assistant installed and this as a hassio addon

Scales82 commented 1 year ago

Hmm, I updated it, still does not work using https://github.com/alexbelgium/hassio-addons/tree/master/epicgamesfree

Might be a limitation on the setup. Using a Raspberry Pi 4 with Home assistant installed and this as a hassio addon

Works fine for me now on my Pi4 HassOS box.

claabs commented 1 year ago

I'm unable to reproduce this, and it's ultimately just a mysterious anti-bot block, so I'll need information from the affected users to try to find a pattern:

Bovive commented 1 year ago

Image distro: latest and bullseye-slim Architecture: amd64 Your device's IP region: US (no VPN) Your Epic Games account's region: US

ThomasHoutrique commented 1 year ago

image Same error for me :(

Image distro: latest and bullseye-slim Architecture: amd64 Your device's IP region: EU(no VPN) Your Epic Games account's region: EU

Doonut commented 1 year ago

got this problem too, tried gluetun with a VPN and another ip, and its the same error

sylar6725 commented 1 year ago

I had the same problem yesterday I have 2 accounts configured. I got this error on the first one but not on the second. I could get the game on the 2nd account without any problem.

I restarted the docker today and I was able to re-login

Image distro: bullseye-slim Architecture: amd64 Your device's IP region: EU(no VPN) Your Epic Games account's region: EU

ThomasHoutrique commented 1 year ago

I had the same problem yesterday I have 2 accounts configured. I got this error on the first one but not on the second. I could get the game on the 2nd account without any problem.

I restarted the docker today and I was able to re-login

Image distro: bullseye-slim Architecture: amd64 Your device's IP region: EU(no VPN) Your Epic Games account's region: EU

Exact same thing happening here ! It's now working

Bovive commented 1 year ago

Same here. Also working today but didn't yesterday. Perhaps running it on the day the new games are released is not a good idea.

trentnbauer commented 1 year ago

I'm getting this error as well

> epicgames-freegames-node@4.1.0 entrypoint-config
> node dist/src/entrypoint-config.js
Setting timezone: UTC
Run on startup: true
[2023-04-28 00:58:02.344 +0000] INFO: Started epicgames-freegames-node
    COMMIT_SHA: "7dda5cbcf484f6eee15d78edd35ebbe15c2de60b"
    BRANCH: "master"
    DISTRO: "alpine"
[2023-04-28 00:58:02.714 +0000] INFO: Checking free games for ###@gmail.com 
    user: "###@gmail.com"
[2023-04-28 00:58:19.325 +0000] INFO: Go to this URL and do something
    user: "###@gmail.com"
    url: "https://epic.***.***/?targetId=AA66E347575856CD32EC5C318C1014C0"
[2023-04-28 01:02:27.285 +0000] WARN: Login returned error: Incorrect response. Please refresh the page.
    user: "###@gmail.com"
[2023-04-28 01:02:35.097 +0000] INFO: Go to this URL and do something
    user: "###@gmail.com"
    url: "https://epic.***.***/?targetId=AA66E347575856CD32EC5C318C1014C0"
[2023-04-28 01:02:42.956 +0000] WARN: Login returned error: Incorrect response. Please refresh the page.
    user: "###@gmail.com"
[2023-04-28 01:02:50.233 +0000] INFO: Go to this URL and do something
    user: "###@gmail.com"
    url: "https://epic.***.***/?targetId=AA66E347575856CD32EC5C318C1014C0"
[2023-04-28 01:03:06.815 +0000] WARN: Login returned error: Incorrect response. Please refresh the page.
    user: "###@gmail.com"
[2023-04-28 01:03:14.495 +0000] INFO: Go to this URL and do something
    user: "###@gmail.com"
    url: "https://epic.***.***/?targetId=AA66E347575856CD32EC5C318C1014C0"

I've noticed that it states the timezone is UTC, it should be Australia/Melbourne

Here is my docker compose file:

version: "3"
services:
  epicgamesfree:
    image: charlocharlie/epicgames-freegames:latest
    container_name: epicfreegames
    ports:
      - 3000:3000
    restart: unless-stopped
    volumes:
      - config:/usr/app/config
    environment:
      - TZ=Australia/Melbourne
volumes:
  config:

Here is my config file

{
  "cronSchedule": "0 12 * * *",
  "searchStrategy": "all",
  "runOnStartup": true,
  "runOnce": false,
  "timezone": "UTC",
  "intervalTime": 60,
  "accountConcurrency": 3,
  "logLevel": "info",
  "notificationTimeoutHours": 24,
  "testNotifiers": false,
  "skipVersionCheck": false,
  "noHumanErrorHelp": false,
  "browserLaunchTimeout": 15,
  "browserLaunchRetryAttempts": 5,
  "browserNavigationTimeout": 30000,
  "logLevel": "info",
  "webPortalConfig": {
    "baseUrl": "https://epic.***.***",
  },
  "accounts": [
    {
      "email": "####@gmail.com",
      "password": "REMOVED",
      "totp": "REMOVED"
    },
  ],
  "notifiers": [
    // You may configure as many of any notifier as needed
    // Here are some examples of each type
    {
      "type": "email",
      "smtpHost": "smtp.privateemail.com",
      "smtpPort": 465,
      "emailSenderAddress": "epic@***.***",
      "emailSenderName": "XFGN | Epic Games Captcha Request",
      "emailRecipientAddress": "####@gmail.com",
      "secure": true,
      "auth": {
          "user": "x@***.***",
          "pass": "REMOVED",
      },
    },
  ],
}
daomengRen commented 1 year ago

I'm getting this error as well

Freekers commented 1 year ago

Same issue here on two different Docker hosts. I tried using the bullseye image instead of latest, but that makes no difference. Was running fine for approx half a year now.

Debug logging:

> epicgames-freegames-node@4.1.0 entrypoint-config
> node dist/src/entrypoint-config.js
npm notice 
npm notice New minor version of npm available! 9.5.1 -> 9.6.5
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v9.6.5>
npm notice Run `npm install -g npm@9.6.5` to update!
npm notice 
Setting timezone: UTC
Run on startup: true
[2023-04-28 21:13:02.627 +0000] INFO: Started epicgames-freegames-node
    COMMIT_SHA: "7dda5cbcf484f6eee15d78edd35ebbe15c2de60b"
    BRANCH: "master"
    DISTRO: "alpine"
[2023-04-28 21:13:02.627 +0000] DEBUG: Performing version check
    PROJECT_NAME: "epicgames-freegames-node"
    BRANCH: "master"
    COMMIT_SHA: "7dda5cbcf484f6eee15d78edd35ebbe15c2de60b"
[2023-04-28 21:13:02.881 +0000] DEBUG: Starting web server for captcha portals
[2023-04-28 21:13:02.885 +0000] INFO: Checking free games for <REDACTED> 
    user: "<REDACTED>"
[2023-04-28 21:13:02.885 +0000] DEBUG: Launching a new browser
    user: "<REDACTED>"
[2023-04-28 21:13:03.111 +0000] DEBUG: Logging in with puppeteer
    user: "<REDACTED>"
[2023-04-28 21:13:03.111 +0000] DEBUG: Launching a new browser
    user: "<REDACTED>"
[2023-04-28 21:13:03.242 +0000] DEBUG: Launching a new page
    user: "<REDACTED>"
[2023-04-28 21:13:06.146 +0000] DEBUG: Could not refresh credentials. Logging in fresh.
    user: "<REDACTED>"
[2023-04-28 21:13:10.850 +0000] INFO: Go to this URL and do something
    user: "<REDACTED>"
    url: "https://<REDACTED>/?targetId=07264B2552A68691030473EBEC5C640C"
[2023-04-28 21:13:25.594 +0000] WARN: Login returned error: Incorrect response. Please refresh the page.
    user: "<REDACTED>"
[2023-04-28 21:13:30.962 +0000] INFO: Go to this URL and do something
    user: "<REDACTED>"
    url: "https://<REDACTED>/?targetId=07264B2552A68691030473EBEC5C640C"
Ratomas commented 1 year ago

I am currently seeing this issue running in unRaid Docker.

bullseye-slim Your device's IP region: US(no VPN) Your Epic Games account's region: US

claabs commented 1 year ago

I'm able to recreate this myself now. I think only the login captcha is affected. It appears hcaptcha enabled stronger bot detection, and there's not much I can do to headless Chromium to beat it.

As a short term fix, I re-enabled cookie import (https://github.com/claabs/epicgames-freegames-node/commit/c0dfe30ee94fa609a9efcb5eb2b8fd0c1dafe6e2), which seems to still work.

The instructions for cookie import can be found here: https://github.com/claabs/epicgames-freegames-node#cookie-import

I'll look into other options for login. There may be an approach to take with device auth (#136), one of the federated login types, or by using privacy pass tokens (#330). As for purchase captchas, pivoting to #312 may be an option.

Freekers commented 1 year ago

I can confirm the cookie import method works. Thanks :)

Out of curiosity; do you (or anyone who is encountering this issue) happen to use Cloudflare Tunnels to expose EpicGamesBot to the internet?

xNookie commented 1 year ago

I am also using the Cloudflare tunnel on Unraid to expose the Bot and facing the same issue.

jatters commented 1 year ago

The cookie import method works for me, thank you!

trentnbauer commented 1 year ago

My Cloudflare is set to DNS only, per below image

BUT I am using Nginx Proxy Manager as my reverse proxy to expose it to the internet image

riverai commented 1 year ago

I'm able to recreate this myself now. I think only the login captcha is affected. It appears hcaptcha enabled stronger bot detection, and there's not much I can do to headless Chromium to beat it.

As a short term fix, I re-enabled cookie import (c0dfe30), which seems to still work.

The instructions for cookie import can be found here: https://github.com/claabs/epicgames-freegames-node#cookie-import

I'll look into other options for login. There may be an approach to take with device auth (#136), one of the federated login types, or by using privacy pass tokens (#330). As for purchase captchas, pivoting to #312 may be an option.

Hello. The problem was solved by using the imported cookie. However, in the checkout part of the shopping , for each game, i was asked to handle the captcha manually every time. This week there are three games free and I have two accounts, so I processed it manually 6 times.

WoBBeLnl commented 1 year ago

Have the same issue, running in HA (alexbelgium). Cookie method does not work, it throws an "ProtocolError: Protocol error (Network.setCookies): Invalid parameters Failed to deserialize params.cookies.name" error.

claabs commented 1 year ago

Have the same issue, running in HA (alexbelgium). Cookie method does not work, it throws an "ProtocolError: Protocol error (Network.setCookies): Invalid parameters Failed to deserialize params.cookies.name" error.

The same issue was observed here in #345. You're likely just on an old version.