Migration guide
How to migrate from Honeybadger to ForgeOps
Not sure switching makes sense yet? See ForgeOps vs. Honeybadger first. This page is for once you've decided: the actual steps, in order.
Both SDKs can run side by side in the same app for as long as you want to compare the two in production before removing Honeybadger entirely; see Switching to ForgeOps if you'd rather approach it that way.
Before you migrate
Review what you actually have configured in Honeybadger first, so nothing gets lost in the switch:
- Which projects and environments you're tracking
- Each project's API key and where it's set (env vars, initializers, CI config)
- Uptime checks: which URLs, on what interval, and who they notify
- Your status page's subscribers and its own custom domain, if you have one set up
- Integrations: Slack, PagerDuty, anything wired to Honeybadger's alerts today
- Your actual log-volume and retention needs; see "What doesn't carry over" below
Install ForgeOps
For a Rails app:
gem "forge_ops_tracker"
File: Gemfile
ForgeOpsTracker.configure do |config|
config.dsn = ENV.fetch("FORGE_OPS_DSN")
end
File: config/initializers/forge_ops_tracker.rb
This hooks Rails.error directly, the same reporter API Rails itself uses
internally, so unhandled exceptions across requests, background jobs, and console sessions
start reporting with no further wiring. Full install steps, including Sidekiq/Solid Queue and
every other language, are on ForgeOps' language pages.
Explicitly-rescued exceptions
Anywhere you're calling Honeybadger directly for an exception you've already rescued, swap it
for Rails.error.report:
Honeybadger
begin risky_operation rescue StandardError => e Honeybadger.notify(e) end
ForgeOps
begin risky_operation rescue StandardError => e Rails.error.report(e, handled: true) end
Recreating the rest
- Uptime checks
- Recreate each one as an Uptime Monitor (Business plan and up); it fetches your URL on its own schedule and opens an incident on failure the same way Honeybadger's checks do.
- Status page
- Every organization gets its own public status page; enable it in your organization's settings and reconnect your custom domain and subscriber list by hand, since neither carries over automatically.
- Existing Honeybadger error history
- Stays in Honeybadger; there's no automatic import. ForgeOps' own history for a project starts fresh from the day you switch.
- Alert rules and integrations
- Not imported automatically; recreate the ones you noted above under Notification Rules once your first project exists. Slack, Teams, and generic webhooks are available on every paid plan; see Alerting.
What doesn't carry over
Honeybadger's raw log ingestion (Insights) has no ForgeOps equivalent; ForgeOps tracks structured error and performance data, not a general log stream. If your team actually depends on that day to day, plan to keep a separate log tool alongside ForgeOps rather than expecting this migration to replace it.
No credit card required.