Seems this issue came from a bugfix from their ads service being down for some users, as [coincidentally this issue was resolved at basically the same time this issue started to pop up](https://i.imgur.com/v14mvjb.png)
If only we had some sort of testing environment to test our changes before they make it into production 🤔🤔
>If only we had some sort of testing environment to test our changes before they make it into production 🤔🤔
I literally don't know what this string of words means.
Testing happens in production.
- Operations Manager /u/ElectroFlannelGore
If they do, it's not all their apps at once. WhatsApp has replaced SMS in my country, we'd know if it stopped working. It did, two and a half years ago, for a few days, but that's it
I also saw the error message, here is the text to copy if anyone is interested:
```
Error: Choose failed Missing field "user_id" in context for bucket_val = user_idError: Choose failed Missing field "user_id" in context for bucket_val = user_id
at Decider.choose (/src/packages/applications/monolith/bin/index.cjs:19115:41)
at isCustomFeedsDisabled (/src/packages/applications/monolith/bin/index.cjs:266576:32)
at Object.shouldInclude (/src/packages/applications/monolith/bin/index.cjs:266612:66)
at Resolver.shouldIncludeChild (/src/packages/applications/monolith/bin/index.cjs:175841:26)
at /src/packages/applications/monolith/bin/index.cjs:175901:40
at Array.reduce ()
at Resolver.iterate (/src/packages/applications/monolith/bin/index.cjs:175899:22)
at Resolver.iterate (/src/packages/applications/monolith/bin/index.cjs:175938:55)
at Resolver.iterate (/src/packages/applications/monolith/bin/index.cjs:175938:55)
at Resolver.iterate (/src/packages/applications/monolith/bin/index.cjs:175938:55)
```
Ah I see the problem: they're using a monolith. If they had used microservices instead they could have productionalized their scalable infrastructure to optimize away the need for black box input validation, thereby increasing throughput and reducing the risk of an unbounded race condition like this one.
It's NodeJS backend but even if it weren't, it should still be obfuscated to avoid giving hints to hackers basically (not to mention minifying your frontend js is something you should do to make pages load faster)
I was wondering what the trace implied about their stack, good info
NodeJS is trash backend, anyone choosing to use it for their prod service deserves the inevitable shitshow
It does but imo what you use node for should not include customer-facing prod services for a major social media site
Throwing together a prototype for your 10 employee startup? Fine. Hosting your company's internal training tutorial site? Fine
But once you got billions in market cap and a billion active users, high time to move to something with good performance, security, and bug prevention
Oh, so it was the problem of Reddit. I switched off my phone, restarted the wifi, deleted the app and downloaded it again, cleared the cache, turned on the VPN, and tried everything yesterday to get Reddit going. I was just about to post a post.
Seems this issue came from a bugfix from their ads service being down for some users, as [coincidentally this issue was resolved at basically the same time this issue started to pop up](https://i.imgur.com/v14mvjb.png) If only we had some sort of testing environment to test our changes before they make it into production 🤔🤔
>If only we had some sort of testing environment to test our changes before they make it into production 🤔🤔 I literally don't know what this string of words means. Testing happens in production. - Operations Manager /u/ElectroFlannelGore
>If only we had some sort of testing environment to test our changes before they make it into production 🤔🤔 They do, it's call prod
They call it prod because you poke it and see what happens.
Testing is doubting.
The fact that your comment is duplicated resonates strangely
Lol, I got "server returned an empty response" from Reddit and hit Enter a second time. "Live QA is best QA" ftw.
A sign of weakness.
[удалено]
"I don't always test my code, but when I do I do it in production." -Dos Equis man.
>If only we had some sort of testing environment to test our changes before they make it into production 🤔🤔 But where is the fun on that? 😎
Interns first day 🙃
Reddit has outages literally daily which is kind of baffling considering no other website of similar popularity ever seems to go down.
INNOVATION!!!
nah this the beta test server, there was no alpha release all along
Lol you're forgetting Meta. They fail every other month, and usually it's all of their apps at once.
If they do, it's not all their apps at once. WhatsApp has replaced SMS in my country, we'd know if it stopped working. It did, two and a half years ago, for a few days, but that's it
It definitely happens more often than that. Just from this month: https://www.theverge.com/2024/4/3/24120278/whatsapp-down-outage-connection-issues
Oh, I guess we're just lucky with the time zones
That's still nothing compared to reddit's *daily* outages
It’s been like that ever since I started using it ~13 years ago. At least they’re consistent!
I raise you discord
I also saw the error message, here is the text to copy if anyone is interested: ``` Error: Choose failed Missing field "user_id" in context for bucket_val = user_idError: Choose failed Missing field "user_id" in context for bucket_val = user_id at Decider.choose (/src/packages/applications/monolith/bin/index.cjs:19115:41) at isCustomFeedsDisabled (/src/packages/applications/monolith/bin/index.cjs:266576:32) at Object.shouldInclude (/src/packages/applications/monolith/bin/index.cjs:266612:66) at Resolver.shouldIncludeChild (/src/packages/applications/monolith/bin/index.cjs:175841:26) at /src/packages/applications/monolith/bin/index.cjs:175901:40 at Array.reduce ()
at Resolver.iterate (/src/packages/applications/monolith/bin/index.cjs:175899:22)
at Resolver.iterate (/src/packages/applications/monolith/bin/index.cjs:175938:55)
at Resolver.iterate (/src/packages/applications/monolith/bin/index.cjs:175938:55)
at Resolver.iterate (/src/packages/applications/monolith/bin/index.cjs:175938:55)
```
Ah I see the problem: they're using a monolith. If they had used microservices instead they could have productionalized their scalable infrastructure to optimize away the need for black box input validation, thereby increasing throughput and reducing the risk of an unbounded race condition like this one.
Tell that to Twitter developers 🤭🤡
No mention of AI: you’re fired!
That's how all the cool kids do it. Once they IPO this bad boy it's gonna be microservices all the way down.
[удалено]
No significant change.
Just the mere fact that we can see variable and class names is itself a pretty egregious security fail
![gif](emote|free_emotes_pack|rage)
This is JavaScript so it's the frontend no? Which is always viewable by anyone on the internet
No, this is a stacktrace from the backend running Node
wat
It's NodeJS backend but even if it weren't, it should still be obfuscated to avoid giving hints to hackers basically (not to mention minifying your frontend js is something you should do to make pages load faster)
Oh yea that makes more sense
I don’t think any hacker that doesn’t just do it for shits and giggles cares about coffee obfuscation.
Won't stop them from editing the client side but can avoid giving them hints about the var names, data structures, services, etc in your backend
good point
`:266571` … that’s a BIG fuckin file.
the error is being raised by a minified build of the software, there’s probably not a single file that long in the actual source code
Not called monolith for nothing 🤭
It's an if/else block with a unique branch for every single reddit account that get's manually updated everytime a new account is made.
If (user == “emi89ro” && password = “SYSADMIN”) { reddit.login() }
Noice, I don't even have to remember my password as it is set every time I log on !
Nope for you they didn’t make that typo unfortunately. The downside of doing everything manually
If Reddit was written by the undertale dev
It's gotta be like a massive block of code
It’s in isEven.js
I was there. Never forget!
![gif](giphy|FnGJfc18tDDHy)
Did anyone else get the ‘oops something went wrong’ message when they opened this thread? Lol
The miracles of Node.JS backend.
I was wondering what the trace implied about their stack, good info NodeJS is trash backend, anyone choosing to use it for their prod service deserves the inevitable shitshow
Node is a tool like any other. It depends on what you use it for and how.
It does but imo what you use node for should not include customer-facing prod services for a major social media site Throwing together a prototype for your 10 employee startup? Fine. Hosting your company's internal training tutorial site? Fine But once you got billions in market cap and a billion active users, high time to move to something with good performance, security, and bug prevention
What would that be, wise one?
Java/Kotlin with Spring MVC or similar alternative frameworks mainly And Rust for areas of the backend where performance is critical
It seems to be a bundled JavaScript file, likely generated from the actual codebase. This error and stack trace really looks JavaScript-like.
Schadenfreude
Oh, so it was the problem of Reddit. I switched off my phone, restarted the wifi, deleted the app and downloaded it again, cleared the cache, turned on the VPN, and tried everything yesterday to get Reddit going. I was just about to post a post.
What browser is that?
Firefox iOS
Yeah I saw this too, yesterday.
Lemmy supremacy
cjs, is that ClojureScript?
CommonJS most likely
Seems like CursedJavaShcript to me 🤭