Fly.io Problems & Issues
Real user-reported problems, complaints, and limitations for Fly.io. Based on analysis of 11 signals.
Overall score: 52/100
Issues by Category
Apps and databases deleted without warning
A recent HN thread described 'destructive and erratic behavior from Fly.io's automated systems resulting in total loss of data across multiple organizations.' Users report apps and databases being deleted in unrelated organizations without warning, raising serious data safety concerns.
Frequent reliability and uptime issues
Fly.io has developed a reputation for reliability problems. HN users report 'application uptime is flakey' with Redis/Postgres timeouts a couple times per month. One user experienced TLS certificate renewal failure causing 8 hours downtime. Another reported 24 hours of intermittent 502 errors while status page showed 99.99% uptime.
Postgres database outages and crashes
Fly.io Postgres has recurring issues: databases failing health checks, connection problems happening 'way too frequently for anything stable', databases getting stuck in read-only mode after migrations, and clusters not coming up healthy in certain regions. One HN post reported a Postgres cluster down for 3 days with no response.
Infrastructure changes break deployments
Fly.io changed defaults from dedicated to shared IP addresses, breaking existing deployments and causing users to lose business. Such infrastructure changes without adequate notice or migration paths create significant risk for production applications.
Deployment failures and hangs
Users experience deployments that hang and fail for no clear reason, requiring retry attempts hours later. Builds fail frequently, new rollouts get stuck, and new Postgres instances sit in limbo. The CI system feels unreliable with spontaneous automation failures.
Pricing surprises and unexpected charges
Users report difficulty predicting costs. One user's bill jumped 70% ($14 to $24) with no changes. Another reported $50-60/month for a low-traffic side project. Hidden costs include: dedicated IPv4 at $2/month per app, volumes charged whether used or not ($0.15/GB), and internal-only apps still consuming resources.
Aggressive billing with no alerts
Fly.io doesn't support billing alerts, so costs can spiral without warning. Free allowances don't cap your bill - you're automatically charged for overages. Users report receiving $25 unauthorized charges and attempted $747 charges. The complex per-second billing model makes budgeting nearly impossible.
Free tier confusion and removal
Fly.io no longer offers a general free tier for new organizations, though documentation still references it. Legacy users retained early allowances, causing confusion. Users signing up expecting free hosting are surprised by credit card requirements and daily reminder emails with no unsubscribe option.
Steep learning curve and complexity
Despite promising simplicity, Fly.io has significant operational overhead. Teams not fluent in Docker face steep onboarding. Users must understand images, processes, volumes, and networking quirks. The platform's complexity masks configuration challenges that slow development velocity.
Limited plug-and-play services
Compared to Heroku or Render, Fly.io has fewer integrated services. Background workers, queues, object storage, and third-party integrations often require manual wiring of external services. This adds complexity for teams expecting a more complete PaaS experience.
Support tickets go weeks without response
Users report sending multiple support emails without responses and tickets pending for weeks. While Fly.io has community forums, direct support requires paid plans. Some users with billing disputes found the company unresponsive to urgent issues.
Regret Patterns
Common reasons users regret choosing Fly.io.
Production outage with no support response
Users discover during their first production incident that free tier only gets community support. Paid support tickets take weeks. Meanwhile, Postgres is down or deployments are failing with no help from Fly.io.
Bill spiked unexpectedly with no warning
Without billing alerts, users discover massive charges after the fact. One user saw bills jump 70% with no changes. Another faced a $747 charge attempt. The complex pricing model makes this hard to predict or prevent.
Realized multi-region wasn't necessary
Developers chose Fly.io for global edge deployment but later realized their users were mostly in one region. The added complexity and cost of multi-region wasn't justified when a simpler platform would have worked.
Team struggled with container complexity
Teams without Docker experience found the learning curve steeper than expected. Understanding images, processes, volumes, and networking took weeks. A simpler PaaS like Railway would have gotten them to production faster.
Postgres database corrupted or lost
Users experienced Postgres databases getting stuck, crashing, or in one extreme case, being deleted without warning. Some lost weeks of data. The managed Postgres proved less reliable than expected.
Infrastructure change broke deployment
Fly.io changed defaults (like switching from dedicated to shared IPs) without adequate notice, breaking existing deployments. Users lost business while scrambling to fix issues caused by platform changes.
When Fly.io Breaks Down
Specific scenarios where Fly.io fails or underperforms.
Postgres database needs high availability
Single-node Postgres has no failover during host issues. Users needing HA must run multi-node clusters, adding complexity and cost. Even then, users report clusters failing to come up healthy in certain regions.
App needs predictable monthly costs
Per-second billing, IPv4 charges, volume costs, and no billing alerts make budgeting impossible. A spike in traffic or a misconfigured service can result in surprise bills. Teams needing predictable costs should look elsewhere.
Team needs reliable customer support
Community support is the only option for free tier. Even paid support has weeks-long response times reported. During a production crisis, users are often left troubleshooting alone via community forums.
Production app requires 99.9%+ uptime
Fly.io's reliability track record includes frequent outages, deployment failures, and status pages showing green during actual incidents. For apps requiring high uptime SLAs, the platform is too risky.
Team is new to containers/Docker
The platform requires understanding Docker, Firecracker VMs, volumes, networking, and fly.toml configuration. Teams without this expertise will spend weeks learning instead of shipping, and may still encounter confusing issues.
App needs background workers and queues
Unlike Heroku or Render, Fly.io has no built-in job queues or worker dynos. Users must manually set up and wire external services like Redis queues, adding complexity that other platforms handle natively.