31 comments

[ 2.1 ms ] story [ 28.1 ms ] thread
I'm hitting a login wall; is there a way to access the content for people who don't have a Facebook account?

Alternatively, is there another page that tracks the status of the issue? I found Platform Status [1]; or perhaps "JS SDK and Social Plugins Failure" [2] is more accurate.

For the record, at the moment the submission points to a discussion on Facebook Developers forum [3].

[1]: https://developers.facebook.com/status/dashboard/

[2]: https://developers.facebook.com/status/issues/49265292218744...

[3]: https://developers.facebook.com/support/bugs/484663959337678...

The link the op used is to specific issue complaint thread. At the present time 3:37 EST the only communication from an official facebook responder is:

Hi John,

Thanks for reaching out. We are aware of this issue and are currently working on fixing it. I'll update this thread when I have more information from the team.

Thank you for your patience.

Regards, Fatma

The rest is a bunch of people complaining of the same issue.

If it has been down that long and that's the only official response, then things must be pretty bad. Either the situation, or FB's communication skills. Neither is good for FB's users, er, products.
It was most likely looked at by the Dublin/Europe team, and passed to SF without a resolution. But yeah, it's super bad, especially on a Friday.
By my count from the status page[0], the FB JS SDK has had issues for 30 of the past 90 days. That's not even one 9.

[0] https://developers.facebook.com/status/dashboard/

(comment deleted)
Most of the issues on that dashboard don't seem related to the JS SDK, e.g. "Increased latency on marketing insights API" and "Instagram comments webhooks event delivery traffic drop". It's a blended view of every(?) Facebook developer product but you'd usually calculate 9's for each individual product.
The problem here is that the JS SDK encompasses all of their products. They don't have a different script or bundle to download for each thing. You just configure your code to point to their JS SDK url, with some params for which version you want, how you want to use it (xml, json), if it should use cookies or some other tracking method. Then it sends you what they think you need based on those params along with your app id so they can see your app configuration, all in one bundle.

This makes it very complicated to say what is actually down or unavailable, which is why I'm guessing the status is "degraded performance", not "down" and they're not calling it an "outage", because technically other parts of the SDK are completely unaffected.

To say that anything in particular is down, they'd have to list a set of API endpoints that are down or a set of very specific features. This is to their advantage though as [1] as already noted, they don't have to say that their SDK is "down", since it's technically not and [2] other people are still going to argue that "hey, it's up for me".

End result, they don't really care how anybody else feels about it. What are people going to do, move to another platform? Stop using facebook to generate traffic and thus revenue? :eye_roll:

That's assuming each issues lasted 24 hours right?
I think most of them did since the same issue would be marked on the tracker for multiple days in a row.

In reality, FB is just being highly transparent with issues and I should applaud them, but that's a lot of yellow and red.

after having been involved in multiple products that relied on facebook, i would not be surprised if this was just their way to let developers know they discontinued the sdk. But don't worry they write a blog post when they bring out the successor in a few months.
I don't know or use the Facebook SDK, but would it be possible to simply disable it and continue running, but without the features it provides?

Previously I've used Google Tag Manager to simply disable external Javascript service when they went down. It saved us multiple time, because we worked with small service providers who doesn't really know anything about the internet, but also in two cases where AWS was unavailable. Rather than having to do a code change and a redeployment, we could just disable a 3. party temporarily.

Maybe the Facebook SDK is typically integrated to deeply to be something you can just disable. It the other comments are correct, and it's down frequently, then maybe you should design to run without it, even if it's just for short periods of time.

> I don't know or use the Facebook SDK, but would it be possible to simply disable it and continue running, but without the features it provides?

The beauty (or ugly, for some) of JS is that it depends on how you use it. If you just call the initialize function (which seems to be down, somehow?) of the FB SDK in the top scope of your page, all code below it is invalid. If you're including it as a script, that script will fail. If it's in a response to some onload event, the rest of the onload body will not execute either.

Not to say you should always expect errors from any 3rd party libraries unless you can guarantee it won't throw, that's just basic error handling.

I wanted to write: "Again? They don't learn to use robust patterns do they".

But if they discontinued it, then they have little reasons to put money into improving it.

It's funny to me. A while back there was a thread on HN about the SDK going hay-wire and taking apps down with it. I sometimes wonder how much damage (financially, technically and socially) a single "shutdown" command can cause.

Seems developers don't bother to test/handle certain failure scenario. Because this API or this server will be available until the heat death of the universe and will never fail.

Also shows FB can, at will, essentially DDOS entire apps just by causing a few failures. Quite a nice position to be in for...Leverage should we say? :P

P.S and a tip to devs:

Please test your apps to enure if a third party component dies, your entire site isn't useless without it. It's okay having "stripe" as the gateway for your entire business to make money but you're essentially putting all your eggs in their basket.

Also, if you use third party JS scripts (caching providers), test that if something isn't loaded you have a fallback (perhaps a locally served version, just do that anyway). It's amazing how a script request just doesn't work and well...Your entire site/app is now dead.

One problem here is that the specific way in which the API is down right now (for an app that I work on, at least) is that when you make a login request through the JS-SDK, to get authorization to use other features/APIs, it never responds. The listener is not unavailable, but the API never responds, so from our point of view, we call their JS SDK login function, which takes a callback, the callback is never called. The best we can do is set our own timeout that gets deleted in the callback and if that doesn't happen before the timeout callback is called in the callback, we go down another path, either displaying an error or doing some other fallback code, but this login method is almost always used to get access to another API, so it starts with a user wanting to do something that some time later they'll be notified that they can't. That's just a bad user experience with no other way around it, if they can't quickly return an error.

Also, _WHY_ do these large scale API providers think that just letting the connection hang is in any way acceptable. Their load balancer, cache layer, proxy, literally anything in front of their API can return an error immediately instead of just waiting for the API. Even just returning a 504 for gateway timeout (which is probably the right thing to do) would be better than just sitting there and never returning anything.

(comment deleted)
This is client side javascript right? Did they push a bad release, or is the server not responding appropriately?
Server not responding appropriately. Well, technically, for some endpoints, it's just not responding at all. In the client side javascript, you call a function and pass it a callback and the callback is never called because their API never responds. No timeout or anything, just never calls your callback. The method is used for getting permissions for a user so you know what other calls are available to them. The docs for the method show no way to get the status of the call other than the callback passed in. https://developers.facebook.com/docs/reference/javascript/FB...
It’s too bad the core website didn’t go down with it. I believe the majority of users, at least those in the USA where FB is based, would be better off without it.

A week-long FB outage would surely result in a very interesting study of society’s response and adaptation to said event.

People will only discover they can live without FB like I did. Never came back to self glorification platform.
Especially during the pandemic it would be nice to have something that facilitated online communications with people I know IRL. I've never understood how to use it, whenever I go on I see someone's post and like it maybe go to comment only to realize it was from five days ago. People talk about getting into huge discussions and spending tons of time on there, I mostly see a handful of semi-stale posts, a handful of fresh ones, a handful of comments on a few of them. Maybe it is my friend group that is the problem? Maybe it is my infrequent usage? Maybe you have to use it a lot to get anything out of it?

The other problem is that I would not have the same conversations with my conservative relatives as my liberal friends, and it feels awkward that everything is visible to everyone.

Who ever, ever thought "<friend> commented on public post" is a good idea? What the hell is that?
I had a good time with Facebook groups before leaving. They were much more controllable than the algofeed
With a less walled garden service and with interoperability encouraged (and they'll never ever embrace it due to greed) the service being down (and hey remember when fb went down and took out Instagram and Whatsapp with it?) wouldn't be so consequential for a lot of people