Tell HN: Heroku deleted my database with no warning
460 points| fireworks | 3 years ago
Before the hate comes out, yes I know Heroku deprecated free tiers. However, I did not understand this would affect my projects on paid dynos. The real issue here is that I never received a single email or notice of any kind to my email about this. From researching, it appears most people received SEVERAL notices about this. I did not think there was an issue with my setup because I received zero communication.
Upon reaching out, Heroku has told me that they cannot recover the database. They also admitted that there was "an issue" sending out notifications to me, and confirmed that none were sent.
So I guess just a warning to all - your database might be nuked at any time. I learned my lesson about not doing an offsite backup regularly. I guess the bigger lesson though is that Heroku should really be a last resort option for projects these days. RIP.
ericpauley|3 years ago
In my view this has caused yet further reputational harm for Heroku, and is going to have a long-term effect on the bottom line from paid projects. The value prop of Heroku has always been being able to sleep at night, but clearly that's gone now.
throwawaykai|3 years ago
xp84|3 years ago
I also assume Salesforce only bought them as a cash generator and has no interest in investing in it. So if they saved bottom line from this move, that's a win for them.
(Feel free to correct my assumptions if I'm very wrong)
alexpetralia|3 years ago
unknown|3 years ago
[deleted]
teaearlgraycold|3 years ago
codegeek|3 years ago
Heroku is a shitshow after the Salesforce takeover and not to shit on you because I know it really sucks. BUT please everyone, do offsite backups and test them. Please people. Please. If you have anything that is important, BACK THEM UP on your own outside of the provider.
Heck, we wrote our own script to backup RDS databases offsite as well even though RDS has backups and restore options. I want that database file.
justin_oaks|3 years ago
They took some half-hearted efforts to back up the data, but it was far from ideal.
Back up your data, and do it in different places so a failure in one won't affect any other copy of the data.
Zababa|3 years ago
I would like to do backups but it's already not really easy, even harder when you add the whole "figure out how to do backups" to it.
Max-q|3 years ago
kaushikc|3 years ago
lamontcg|3 years ago
(or just maybe we shouldn't have thrown out all the sysadmins with the bathwater)
collectedparts|3 years ago
How Heroku missed this is beyond me. They managed to screw over paying customers in their broad attempt to stop freeloaders.
These are good accounts with credit cards on file. Why not just autocovert me to the lowest tier paid database?
FWIW I was able to get them to restore my databases. But I also had free Heroku Redis on one my projects and that, they assured me, is gone forever.
addandsubtract|3 years ago
fireworks|3 years ago
sieabahlpark|3 years ago
marvinkennis|3 years ago
dns_snek|3 years ago
hot_gril|3 years ago
[Edit: To this day I'm still puzzled by what I'm about to describe, so idk if it's Heroku's fault or mine.] I got a call from my colleague one day saying our database had gone back in time. Evidently we lost an hour of records. The code wasn't even capable of deleting rows, and nobody had direct DB access but me, so after leafing through the docs I suspected a failover event caused it. Premium DBs also let you roll back the DB to a previous point in time, and we were able to recover most of our data this way, like Back to the Future. If this really was a failover event, it's super weird if that the backup was more up to date than the standby master, and that a whole hour (rather than minute) was lost.
nightpool|3 years ago
Andys|3 years ago
londons_explore|3 years ago
Most architectures I see might lose a few milliseconds of writes in the typical case, and perhaps a second of writes in the worst case (which occurs when the master gets islanded with a couple of clients).
93po|3 years ago
For context, someone put in malicious DMCA complaints against my website. Heroku did a shit fucking job (i.e. nothing) verifying the complaints. They provided no ability to dispute that it was bullshit. I took my business elsewhere, not that they care.
celestialcheese|3 years ago
What pissed me off most is that I WAS paying for the account. I was paying $17/mo for redis and dynos, so there was an active card on file.
Why not just start charging for the postgres db, and only delete if there's no active billing?
Heroku was already a no-go for me with new projects, I just keep old things running in there since it's too much work to migrate off. This just cements that for me.
mst|3 years ago
Probably because the original terms you agreed to were written not anticipating Salesforce perpetrating this and so while I would not at all be surprised if the vast majority of customers in your position would've been entirely happy with it they probably didn't have a legal path to do so.
tevon|3 years ago
I built my prior business on heroku and it was wonderful. Now with this current company I've switched to Render (through am looking for something else). For me the writing was on the wall for Heroku and it wasn't worth it to me to dig in there if new features and support wasn't a given.
Curious for anyone with an inside perspective. What happened? Heroku was so far ahead of the pack for awhile, then suddenly stopped staying a step ahead. Was this intentional? Why?
strix_varius|3 years ago
favorited|3 years ago
Not the end of the world for me, because 95% of the data I had in there had already been processed, but I did lose some. Complete joke of a service.
yellowapple|3 years ago
Well, one day the production Postgres container just... vanishes. All the storage is gone. After weeks back and forth with IBM's support, they confirm that the loss is permanent. No explanation, no refunds, just "lol fuck you". Naturally, we didn't have backups yet, so the few users we did have now had to start from scratch.
I, too, learned my lesson about not doing an offsite backup regularly - and the bigger lesson that Bluemix should've been a last resort option. Funny enough, we had migrated to that from Heroku; we ended up migrating again to AWS (specifically: Elastic Beanstalk).
marcelaguiar|3 years ago
- I did not receive any email warnings that this would happen. I have a valid email registered with them because I do receive non-promotional emails. However nothing for this. After getting in contact with customer service their rebuttal was that I also would've known by checking the forums/blog. Who on earth is doing that? It's a terrible response.
- They detached the DBs at the start of December. I wasn't going to fix my broken personal projects over the holidays. I told myself I would take a look come January. Which by that point it was past the 30 day grace period.
In the end, I've had to completely stop paying for the dynos. So Heroku lost business overall from me.
pgrenn|3 years ago
I made some mistakes like not backing up my db, not keeping up on maintenance. But didn't think it would result in a complete loss of database considering I was still paying heroku. This app had been running since 2014. After this incident I removed my website from heroku.
simonw|3 years ago
MzHN|3 years ago
My personal account did get a bunch of warning emails but nothing on our business accounts.
cameronfraser|3 years ago
hyperman1|3 years ago
This is not a warning against only heroku. Google is famous for terminating without any recourse random accounts because they felt like it that day. Amazon and especially Microsoft seem more dependable, but even they had their share of business-killing behaviour.
So e.g. a backup with another cloud vendor is a requirement for almost any business. And of course, validate it. Easyer said than done at scale, of course, but even a partially failed backup is better than nothing.
jfoster|3 years ago
Anyone remember Parse? It was quite successful until Facebook got hold of it and seemingly out of nowhere decided to destroy it.
pattrn|3 years ago
He's moved on to Render since then (and he's now backing up his data offsite). Painful lesson to learn, but at least he hadn't launched his product yet.
rurp|3 years ago
mtmail|3 years ago
"Remind HN: Heroku will delete all free dbs and shut down all free dynos Monday" https://news.ycombinator.com/item?id=33755651
lalopalota|3 years ago
dboreham|3 years ago
jfoster|3 years ago
I wonder how many databases they deleted that they could have instead started charging for. Seems to be incredibly destructive for all involved. (SF shareholders, Heroku customers, etc.)
numpad0|3 years ago
sneak|3 years ago
Make offsite backups.
For this use case, a raspberry pi 4 with a 1TB SD card hidden somewhere in your home with a cronjob is probably more than enough.
benediktdeicke|3 years ago
We recently migrated from Heroku Postgres to Crunchy Bridge and can totally recommend it. So maybe set up your new database there instead.
icey|3 years ago
jacobsenscott|3 years ago
I have no faith that if a rouge employee clicks the "delete app" button (because did you know to give an employee the ability to update the ssl cert on your web app you also need to give them permission to delete the whole damn app?) you'll ever be able to get your database back (although you might have a 30 day window to do so, but I wouldn't trust it.)
latortuga|3 years ago
carmenhchung|3 years ago
On the upside, when I reached out to Heroku, they did offer to recover the database for me - but by this point in time, I'd already moved on with setting up a new one from scratch (with some changes from the original), so this wasn't particularly helpful.
tchock23|3 years ago
gloosx|3 years ago
What is not directly possessed by you is not fully YOURS, and probably it is (un)clearly stated in the "free tier" terms of use.
Remember kids, when you encounter free cloud thing on top of the free host-able thing, just spend another day and host it yourself, cause you're just facing a sales funnel which will eventually collapse
kuon|3 years ago
They must have had some billing problem because I got charged for months after stopping everything, I was able to block the charges at the credit card level but they kept trying and I never had any answer nor explanation from them.
ehPReth|3 years ago
nineteen999|3 years ago
Maybe people shouldn't, I don't know because I've never used it, but ...
> I learned my lesson about not doing an offsite backup regularly.
This is the bigger lesson, no matter whether you are using third party database hosting, or hosting yourself, whether it's a NoSQL database or a SQL one.
Once the data is gone, its gone.
tflinton|3 years ago
I still use Heroku on a daily basis and wouldn't say this has caused me to re-evaluate my decision to stay with them, but then again i'm not using anything free from them.
kakarukeys|3 years ago
They were going downhill since Salesforce takeover.
frietzkriesler2|3 years ago
deepsun|3 years ago
rovr138|3 years ago
So I take this opportunity to ask, what alternatives have people moved to? I really haven't gone back to look what's out there.
Not looking for free, just alternatives to review.
dcow|3 years ago
xp84|3 years ago
For small apps, if containerized, I would host on Google Cloud Platform using App Engine Flexible Environment: https://cloud.google.com/appengine/docs/flexible Add on their managed database, of course.
But also, random VPSs are so cheap that if it works fine as is, you could do a lot worse than just running it on Linode, Digital Ocean, Hetzner, etc.
donnieashok|3 years ago
ioseph|3 years ago
bryanrasmussen|3 years ago
1. probably the notice sending and db deletion is two separate teams or responsibilities. Are they?
2. Did people know there was a bug in notice sending so some notices were not being sent, all notices not being sent? I ask this because generally in places I've worked where notice sending was an important part of things you knew if there was a bug and notices were not being sent. But maybe it wasn't that important for Heroku. Maybe it was not known that notices were not being sent for a while - or was it known immediately but things on other parts of business chugged along anyway.
3. If they knew notices were not being sent and they went ahead and deleted db anyway, seems messed up, but that would probably be ok with people if they had data retention for people who did not get notices sent.
4. The whole thing your stuff can be deleted at any time without telling you is basically probably true almost everywhere in that notice sending can have a bug and deletion of stuff is probably not adequately tied to notice sending so that if notice not sent automatic deletion is stopped. Which I'm thinking is probably everywhere - if you work somewhere with automatic deletion and a notice sending module - what happens? Is this scenario handled?
5. answer to this is probably not, but is there a legal issue if notices not sent and stuff deleted, issue might be if some notices were sent - if account A gets notice about deletion and is thus able to act on it and account B does not get notice and is thus not able to act on it there might be a ground for action. Probably not, but when something seems unfair there might be a law that can be stretched to fit it.
mst|3 years ago
Note that this is not to say the end result wasn't an indefensible disaster, only that disasters seldom have only a single cause and the above is my best uneducated guess at how things came together to cause this one.
reiderrider|3 years ago
brightball|3 years ago
coffeeblack|3 years ago
thinking001001|3 years ago
swader999|3 years ago
fireworks|3 years ago
m00x|3 years ago
danpalmer|3 years ago
On Heroku, databases and dynos are completely distinct entities, each with their own payment plans.
When you set up a dyno and “add” a database, as most people do, it’s really easy to think that they are part of the same plan, and conclude that the “pro” or paid dyno is actually the combo of the dyno and database. They are not.
I understand why they did this, databases can be shared between applications, that’s handy, but this is a sharp edge.
riebschlager|3 years ago
jack_riminton|3 years ago
kragen|3 years ago
yonrg|3 years ago
nzoschke|3 years ago
Totally understand expectations that a managed database service will keep your data but if it’s truly mission critical take backups…
menzoic|3 years ago
dtjohnnymonkey|3 years ago
userbinator|3 years ago
sebastien_b|3 years ago
robbiep|3 years ago
anonym29|3 years ago
6451937099|3 years ago
[deleted]
6451937099|3 years ago
[deleted]
t312227|3 years ago
[deleted]
spuz|3 years ago
JEDI-HACKER|3 years ago
javawizard|3 years ago
Junk mail wasn't the issue in this case.
unknown|3 years ago
[deleted]
purpleblue|3 years ago
gwbas1c|3 years ago
$5-10 a month is pocket change in some contexts, but for a hobby or a one-off project, it's a huge chunk of change.
I really wish they offered a lower-cost tier.
Towaway69|3 years ago
Sure there are others out there that provide the same easy of use, I am just too lazy to switch ;)
OTOH I've never had them wipe a database on me, so I guess that would be the motivation to move on.
shortcake27|3 years ago
m00x|3 years ago
You can also go to any competitors, which have their smallest tier around the same price. Linode has a $5/m tier.
You could also buy a Raspberry Pi for $50 and run it in your closet.