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 90 forks source link

[NEED SUPPORT] Protocol error (Network.setCookies): Invalid parameters Failed to deserialize params.cookies.name - BINDINGS: mandatory field missing at position 60 #260

Closed LynBean closed 2 years ago

LynBean commented 2 years ago

Run in Docker Container, tried on epicgames-freegames:latest and epicgames-freegames:bullseye-slim, both same result

config.json5:

{
    "runOnce": true,
    "hcaptchaAccessibilityUrl": "https://accounts.hcaptcha.com/verify_email/XXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "logLevel": "debug",
    "runOnStartup": true,
    "searchStrategy": "weekly",
    "testNotifiers": false,
    "webPortalConfig": {
      "baseUrl": "https://www.epicgames.com",
    },
    "accounts": [
      {
        "email": "2003XXXXXX@gmail.com",
        "password": "XXXXXX",
        "totp": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      },
    ],
    "notifiers": [
      {
        "type": "discord",
        "webhookUrl": "https://discord.com/api/webhooks/XXXX/XXXXXXXXX",
      },
    ],
}

2003XXXXXX@gmail.com-cookies.json:

[{
        "domain": ".epicgames.com",
        "expirationDate": 1688909131,
        "hostOnly": false,
        "httpOnly": false,
        "name": "_tald",
        "path": "/",
        "sameSite": "no_restriction",
        "secure": true,
        "session": false,
        "storeId": "0",
        "value": "XXXXXXXXXXXXXXXXXXX",
        "id": 1
    },
    {
        "domain": ".epicgames.com",
        "expirationDate": 1657457839,
        "hostOnly": false,
        "httpOnly": true,
        "name": "EPIC_BEARER_TOKEN",
        "path": "/",
        "sameSite": "no_restriction",
        "secure": true,
        "session": false,
        "storeId": "0",
        "value": "XXXXXXXXXXXXXXXXXXX",
        "id": 2
    },
    {
        "domain": ".epicgames.com",
        "hostOnly": false,
        "httpOnly": false,
        "name": "EPIC_COUNTRY",
        "path": "/id",
        "sameSite": "no_restriction",
        "secure": true,
        "session": true,
        "storeId": "0",
        "value": "MY",
        "id": 3
    },
    {
        "domain": ".epicgames.com",
        "expirationDate": 1720445128,
        "hostOnly": false,
        "httpOnly": true,
        "name": "EPIC_DEVICE",
        "path": "/",
        "sameSite": "no_restriction",
        "secure": true,
        "session": false,
        "storeId": "0",
        "value": "XXXXXXXXXXXXXXXXXXX",
        "id": 4
    },
    {
        "domain": ".epicgames.com",
        "hostOnly": false,
        "httpOnly": false,
        "name": "EPIC_LOCALE_COOKIE",
        "path": "/",
        "sameSite": "unspecified",
        "secure": false,
        "session": true,
        "storeId": "0",
        "value": "en-US",
        "id": 5
    },
    {
        "domain": ".epicgames.com",
        "expirationDate": 1660021039,
        "hostOnly": false,
        "httpOnly": true,
        "name": "EPIC_SESSION_AP",
        "path": "/id",
        "sameSite": "no_restriction",
        "secure": true,
        "session": false,
        "storeId": "0",
        "value": "XXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXX",
        "id": 6
    },
    {
        "domain": ".epicgames.com",
        "expirationDate": 1657459529,
        "hostOnly": false,
        "httpOnly": true,
        "name": "EPIC_SESSION_REPUTATION",
        "path": "/id",
        "sameSite": "no_restriction",
        "secure": true,
        "session": false,
        "storeId": "0",
        "value": "XXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXX",
        "id": 7
    },
    {
        "domain": ".epicgames.com",
        "expirationDate": 1657457839,
        "hostOnly": false,
        "httpOnly": true,
        "name": "EPIC_SSO",
        "path": "/",
        "sameSite": "no_restriction",
        "secure": true,
        "session": false,
        "storeId": "0",
        "value": "XXXXXXXXXXXXXXXXXXX",
        "id": 8
    },
    {
        "domain": ".epicgames.com",
        "expirationDate": 1660021039,
        "hostOnly": false,
        "httpOnly": true,
        "name": "EPIC_SSO_RM",
        "path": "/",
        "sameSite": "no_restriction",
        "secure": true,
        "session": false,
        "storeId": "0",
        "value": "XXXXXXXXXXXXXXXXXXX",
        "id": 9
    },
    {
        "domain": ".www.epicgames.com",
        "expirationDate": 1657466371,
        "hostOnly": false,
        "httpOnly": false,
        "name": "AWSELB",
        "path": "/",
        "sameSite": "unspecified",
        "secure": false,
        "session": false,
        "storeId": "0",
        "value": "XXXXXXXXXXXXXXXXXXX",
        "id": 10
    },
    {
        "domain": ".www.epicgames.com",
        "expirationDate": 1657466371,
        "hostOnly": false,
        "httpOnly": false,
        "name": "AWSELBCORS",
        "path": "/",
        "sameSite": "no_restriction",
        "secure": true,
        "session": false,
        "storeId": "0",
        "value": "XXXXXXXXXXXXXXXXXXX",
        "id": 11
    },
    {
        "domain": ".www.epicgames.com",
        "hostOnly": false,
        "httpOnly": false,
        "name": "EPIC_LOCALE",
        "path": "/",
        "sameSite": "unspecified",
        "secure": false,
        "session": true,
        "storeId": "0",
        "value": "en_US",
        "id": 12
    },
    {
        "domain": ".www.epicgames.com",
        "hostOnly": false,
        "httpOnly": false,
        "name": "EPIC_SESSION_ID",
        "path": "/id",
        "sameSite": "no_restriction",
        "secure": true,
        "session": true,
        "storeId": "0",
        "value": "XXXXXXXXXXXXXXXXXXX",
        "id": 13
    },
    {
        "domain": ".www.epicgames.com",
        "hostOnly": false,
        "httpOnly": false,
        "name": "XSRF-AM-TOKEN",
        "path": "/",
        "sameSite": "unspecified",
        "secure": false,
        "session": true,
        "storeId": "0",
        "value": "XXXXXXXXXXXXXXXXXXX",
        "id": 14
    },
    {
        "domain": ".www.epicgames.com",
        "hostOnly": false,
        "httpOnly": true,
        "name": "XSRF-TOKEN",
        "path": "/id",
        "sameSite": "unspecified",
        "secure": true,
        "session": true,
        "storeId": "0",
        "value": "XXXXXXXXXXXXXXXXXXX",
        "id": 15
    }
]

Docker Log:

> epicgames-freegames-node@4.1.0 entrypoint-config
> node dist/src/entrypoint-config.js

Setting timezone: UTC
Run on startup: true
[2022-07-10 05:17:57.247 +0000] INFO: Started epicgames-freegames-node
    COMMIT_SHA: "a7629cb5b837b3a9242bf0a0e13b94006bc58dad"
    BRANCH: "master"
    DISTRO: "debian"
[2022-07-10 05:17:57.247 +0000] DEBUG: Performing version check
    PROJECT_NAME: "epicgames-freegames-node"
    BRANCH: "master"
    COMMIT_SHA: "a7629cb5b837b3a9242bf0a0e13b94006bc58dad"
[2022-07-10 05:17:57.606 +0000] INFO: Checking free games for 2003XXXXXX@gmail.com 
    user: "2003XXXXXX@gmail.com"
[2022-07-10 05:17:57.606 +0000] DEBUG: Launching a new browser
    user: "2003XXXXXX@gmail.com"
[2022-07-10 05:17:57.757 +0000] DEBUG: Setting hCaptcha accessibility cookies
[2022-07-10 05:17:57.757 +0000] DEBUG: Launching a new browser
[2022-07-10 05:17:57.874 +0000] DEBUG: Launching a new page
[2022-07-10 05:18:03.057 +0000] DEBUG: Error from hCaptcha get_cookie request, continuing without hCaptcha accessibility cookies
    status: 401
    errorBody: {
      "status": "error"
    }
[2022-07-10 05:18:03.106 +0000] DEBUG: Logging in with puppeteer
    user: "2003XXXXXX@gmail.com"
[2022-07-10 05:18:03.106 +0000] DEBUG: Launching a new browser
    user: "2003XXXXXX@gmail.com"
[2022-07-10 05:18:03.226 +0000] DEBUG: Launching a new page
    user: "2003XXXXXX@gmail.com"
[2022-07-10 05:18:03.387 +0000] ERROR: Encountered an error during browser automation. Saved a screenshot for debugging purposes.
    user: "2003XXXXXX@gmail.com"
    errorFile: "error-2022-07-10T05:18:03.324Z.png"
[2022-07-10 05:18:03.391 +0000] ERROR: Protocol error (Network.setCookies): Invalid parameters Failed to deserialize params.cookies.name - BINDINGS: mandatory field missing at position 60
    user: "2003XXXXXX@gmail.com"
    err: {
      "type": "ProtocolError",
      "message": "Protocol error (Network.setCookies): Invalid parameters Failed to deserialize params.cookies.name - BINDINGS: mandatory field missing at position 60",
      "stack":
          ProtocolError: Protocol error (Network.setCookies): Invalid parameters Failed to deserialize params.cookies.name - BINDINGS: mandatory field missing at position 60
              at /usr/app/node_modules/puppeteer/src/common/Connection.ts:304:16
              at new Promise (<anonymous>)
              at CDPSession.send (/usr/app/node_modules/puppeteer/src/common/Connection.ts:300:12)
              at PuppetLogin.setupPage (/usr/app/src/puppet/base.ts:48:23)
              at processTicksAndRejections (node:internal/process/task_queues:96:5)
              at PuppetLogin.fullLogin (/usr/app/src/puppet/login.ts:28:18)
              at redeemAccount (/usr/app/src/index.ts:37:5)
              at async Promise.all (index 0)
              at main (/usr/app/src/index.ts:65:5)
      "name": "ProtocolError",
      "originalMessage": "Invalid parameters"
    }
[2022-07-10 05:18:03.413 +0000] WARN: Current version
    COMMIT_SHA: "a7629cb5b837b3a9242bf0a0e13b94006bc58dad"
    BRANCH: "master"
    DISTRO: "debian"
Run once: true
Exiting...
KairuByte commented 2 years ago

It almost seems like the format of the export changed? It doesn't match an export from a few months back. That said, I don't believe the cookie login works long term, so you will likely need/want to get used to solving captchas on login.

Jonas-Meyer97 commented 2 years ago

I get the same problem. The cookie export seem to look different from the last time I used this bot.

claabs commented 2 years ago

Cookie import doesn't apply anymore since nearly every action requires solving a captcha. I removed the documentation for it.