mandatoryprogrammer / mandatoryprogrammer/CursedChrome

UnhandledPromiseRejectionWarning: Error: WHERE parameter "browser_id" has invalid

Open
#76 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
1.7k
Forks
249
PR merge metrics
No merged PRs in 30d

Description

Hello,
I got this error UnhandledPromiseRejectionWarning: Error: WHERE parameter "browser_id" has invalid,

/CursedChrome# docker compose up cursedchrome
[+] Running 3/0
 ✔ Container cursedchrome-db-1            Running                                                   0.0s 
 ✔ Container cursedchrome-redis-1         Running                                                   0.0s 
 ✔ Container cursedchrome-cursedchrome-1  Created                                                   0.0s 
Attaching to cursedchrome-1
cursedchrome-1  | [December 20th 2024, 12:34:57 pm] Master 8 is running
cursedchrome-1  | [December 20th 2024, 12:34:57 pm] Initializing the database connection...
cursedchrome-1  | [December 20th 2024, 12:34:58 pm] Starting the WebSocket server...
cursedchrome-1  | [December 20th 2024, 12:34:58 pm] Starting the HTTP proxy server...
cursedchrome-1  | [AnyProxy Log][2024-12-20 12:34:58]: Http proxy started on port 8080
cursedchrome-1  | [December 20th 2024, 12:34:58 pm] CursedChrome HTTP Proxy server is now running on port 8080.
cursedchrome-1  | [December 20th 2024, 12:34:58 pm] Starting API server...
cursedchrome-1  | [December 20th 2024, 12:34:58 pm] Worker 20 started
cursedchrome-1  | [December 20th 2024, 12:34:58 pm] Starting the WebSocket server...
cursedchrome-1  | [December 20th 2024, 12:34:58 pm] Starting the HTTP proxy server...
cursedchrome-1  | [AnyProxy Log][2024-12-20 12:34:58]: Http proxy started on port 8080
cursedchrome-1  | [December 20th 2024, 12:34:58 pm] CursedChrome HTTP Proxy server is now running on port 8080.
cursedchrome-1  | [December 20th 2024, 12:34:58 pm] Starting API server...
cursedchrome-1  | [December 20th 2024, 12:34:58 pm] Worker 26 started
cursedchrome-1  | [December 20th 2024, 12:34:58 pm] CursedChrome API server is now listening on port 8118
cursedchrome-1  | [December 20th 2024, 12:34:58 pm] CursedChrome API server is now listening on port 8118
cursedchrome-1  | [December 20th 2024, 12:36:41 pm] A new browser has connected to us via WebSocket!
cursedchrome-1  | [December 20th 2024, 12:36:41 pm] Authenticating newly-connected browser...
cursedchrome-1  | (node:20) UnhandledPromiseRejectionWarning: Error: WHERE parameter "browser_id" has invalid "undefined" value
cursedchrome-1  |     at PostgresQueryGenerator.whereItemQuery (/work/node_modules/sequelize/lib/dialects/abstract/query-generator.js:2184:13)
cursedchrome-1  |     at /work/node_modules/sequelize/lib/dialects/abstract/query-generator.js:2173:25
cursedchrome-1  |     at Array.forEach (<anonymous>)
cursedchrome-1  |     at PostgresQueryGenerator.whereItemsQuery (/work/node_modules/sequelize/lib/dialects/abstract/query-generator.js:2171:35)
cursedchrome-1  |     at PostgresQueryGenerator.getWhereConditions (/work/node_modules/sequelize/lib/dialects/abstract/query-generator.js:2583:19)
cursedchrome-1  |     at PostgresQueryGenerator.selectQuery (/work/node_modules/sequelize/lib/dialects/abstract/query-generator.js:1315:28)
cursedchrome-1  |     at QueryInterface.select (/work/node_modules/sequelize/lib/query-interface.js:1122:27)
cursedchrome-1  |     at /work/node_modules/sequelize/lib/model.js:1757:34
cursedchrome-1  |     at tryCatcher (/work/node_modules/bluebird/js/release/util.js:16:23)
cursedchrome-1  |     at Promise._settlePromiseFromHandler (/work/node_modules/bluebird/js/release/promise.js:547:31)
cursedchrome-1  |     at Promise._settlePromise (/work/node_modules/bluebird/js/release/promise.js:604:18)
cursedchrome-1  |     at Promise._settlePromise0 (/work/node_modules/bluebird/js/release/promise.js:649:10)
cursedchrome-1  |     at Promise._settlePromises (/work/node_modules/bluebird/js/release/promise.js:729:18)
cursedchrome-1  |     at _drainQueueStep (/work/node_modules/bluebird/js/release/async.js:93:12)
cursedchrome-1  |     at _drainQueue (/work/node_modules/bluebird/js/release/async.js:86:9)
cursedchrome-1  |     at Async._drainQueues (/work/node_modules/bluebird/js/release/async.js:102:5)
cursedchrome-1  |     at Immediate.Async.drainQueues [as _onImmediate] (/work/node_modules/bluebird/js/release/async.js:15:14)
cursedchrome-1  |     at processImmediate (internal/timers.js:456:21)
cursedchrome-1  | (node:20) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)

This is my socat redirector output:

/CursedChrome# socat -v TCP4-LISTEN:8443,reuseaddr,fork TCP4:127.0.0.1:4343

2024/12/20 12:36:41.000169500 length=567 from=0 to=566
GET / HTTP/1.1\r
Host: [REDACTED]:8443\r
Connection: Upgrade\r
Pragma: no-cache\r
Cache-Control: no-cache\r
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0\r
Upgrade: websocket\r
Origin: chrome-extension://odfafepnkmbhccpbejgmiehpchacaeak\r
Sec-WebSocket-Version: 13\r
Accept-Encoding: gzip, deflate\r
Accept-Language: fr,fr-FR;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6\r
Sec-WebSocket-Key: DNGJG1cQG39C0yM3rhWSeg==\r
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits\r
\r
< 2024/12/20 12:36:41.000173797 length=129 from=0 to=128
HTTP/1.1 101 Switching Protocols\r
Upgrade: websocket\r
Connection: Upgrade\r
Sec-WebSocket-Accept: kRyM2rPxf8oVAuJb6Gz/Y6xWAVA=\r
\r
< 2024/12/20 12:36:41.000176050 length=91 from=129 to=219
.Y{"id":"f0f7b909-f2e9-4ffb-849f-7cf05d6564c9","version":"1.0.0","action":"AUTH","data":{}}> 2024/12/20 12:36:44.000127130 length=95 from=567 to=661
...A...c...{...q...x...w...u...l...w...u...x...u...c...2...c...o...c...".../.......c... ...{...> 2024/12/20 12:36:47.000111069 length=95 from=662 to=756
..B.Y.9.0z.{/&.;{$.i3u.m}o.?x&.;{'.txz.n|s.:xw.h<n./{0.0q,.c<s.i0r.u<#.-w-.{$..P..u<&.-.`."c?> 2024/12/20 12:36:50.000111135 length=95 from=757 to=851
.....E...!...w...$...h...q...!...q...'...&...#...g... ...*...g...k...g...,.......\v...g...$...8.> 2024/12/20 12:36:53.000112144 length=95 from=852 to=946
...'=vg.T.>...y._.)..[%B[.1...,
_OyB.N.A\v.-. D..YT0.K.nTT.r.\aT- \rX,..T}DI.sI.L>wt8[..TxFI.>.F\va> 2024/12/20 12:36:56.000116975 length=95 from=947 to=1041
...~...\.d.D.9.G.5.O.-.I.c.J.e.S.3.G.2...6...2.N.".\.e.\r.o.\.".P...\."...i...:...N.\."...a.D.}.> 2024/12/20 12:36:56.000624806

Do you known where it come from ?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the failure with docker compose up cursedchrome and the WebSocket AUTH payload shown in the issue. Trace the browser-authentication entry point and the Sequelize query that uses browser_id. Done means a newly connected browser no longer produces an undefined browser_id or an unhandled promise rejection, with authentication behavior verified.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, node.js, postgresql
Domain
api, backend, databases, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.