The Handbook

    Theme
    • Guides
        • Check a system before installing FreeBSD
        • Orient a Linux administrator on FreeBSD
        • Supported FreeBSD releases
        • Choose a FreeBSD documentation and support channel
        • Move files safely without GNU mv -t
        • Update, upgrade, or update packages?
        • Upgrade 14.4 or 15.0 to FreeBSD 15.1
        • Choose packages, ports, or poudriere
        • Choose the quarterly or latest package branch
        • Choose a FreeBSD download or package mirror
        • Make a system setting persistent
        • Configure locale, keyboard, and time zone
        • Configure a serial console for recovery
        • Choose a custom kernel, module, or loader setting
        • Run a Linux binary with the compatibility layer
        • Check desktop and laptop hardware before installation
        • Choose and check a graphics driver
        • Choose Xorg or Wayland
        • Build a maintainable desktop baseline
        • Install and check a desktop browser
        • Check laptop Wi-Fi, power, and suspend
        • Check multimedia readiness
        • Choose and configure a printing stack
        • Run Windows applications with Wine
        • Snapshot and replicate a ZFS dataset
        • Choose a filesystem and storage layout
        • Operate ZFS without losing the recovery path
        • Restore files from a ZFS snapshot
        • Read ZFS pool health and run a scrub
        • Replace a failed device in a ZFS mirror
        • Replicate a ZFS dataset over SSH
        • Change PF safely on a remote host
        • Configure a narrow WireGuard tunnel
        • Plan a FreeBSD home server
        • Choose a mail server or an outgoing relay
        • Publish a network service safely
        • Choose a jail network model
        • Choose native jails or a jail manager
        • Choose a jail or a bhyve virtual machine
        • Establish a FreeBSD security baseline
        • Choose a MAC policy
        • Audit security-relevant activity
        • Start a DTrace performance investigation
    • Integrations
        • Create a first jail with Bastille
        • Compare jail managers and OCI tooling
        • Publish a Bastille service through PF
        • Mount a ZFS dataset in a Bastille jail
        • Update and upgrade Bastille jails
        • Back up and restore a Bastille jail
        • Prepare bhyve and vm-bhyve
        • Choose NFS or Samba for file sharing
        • Choose ZFS backup automation
        • Operate a signed poudriere repository
        • Manage FreeBSD configuration with Ansible or Salt
        • Run Motion with webcamd on FreeBSD
        • Design a reverse proxy, certificates, and monitoring
    • FAQ
      • Troubleshooting
          • Recover an interrupted freebsd-update run
          • Resolve a package repository or ABI mismatch
          • Diagnose the FreeBSD boot path
          • Recover with a ZFS boot environment
          • Diagnose DNS, routing, and firewall paths
          • Diagnose network mbuf exhaustion
          • Bind a service to a low port without running it as root
          • Diagnose audio output or input
          • Diagnose webcamd, cuse, and a webcam
          • Fix USB device permissions without opening every device
      • About this handbook
      • Synopsis
      • Record the current state
      • Interpret the phase
      • Continue a saved transaction
      • Diagnose a repeated failure
      • Roll back only the most recent installed update
      • Primary references

      Recover an interrupted freebsd-update run

      Last reviewed
      13 August 2026
      Applies to
      15.1-RELEASE, 15.0-RELEASE, 14.4-RELEASE

      Synopsis #

      freebsd-update separates fetching, merging, and installation into saved phases. During a release upgrade, repeated freebsd-update install invocations intentionally perform different work around a reboot and third-party package upgrade. An interruption does not therefore imply that the process must start again.

      Do not remove /var/db/freebsd-update, change the target release, or start another update job while diagnosing the saved transaction. Those actions can destroy the state needed to continue safely.

      This procedure applies to a distribution-set base system. A pkgbase host is maintained with pkg; identify the method with the update and upgrade decision guide .

      Record the current state #

      Capture the exact error and the three installed version values:

      $ freebsd-version -kru
      $ uname -a
      $ df -h / /var
      $ mount
      

      Check for another active process before starting a replacement invocation:

      $ pgrep -laf freebsd-update
      

      If an active process is still fetching, merging, or installing, investigate that process rather than running a concurrent copy. An abandoned terminal does not necessarily mean the process stopped.

      Interpret the phase #

      Last completed actionExpected next action
      freebsd-update fetch during a patch updatefreebsd-update install
      freebsd-update upgrade -r 15.1-RELEASE finished, no install yetFirst freebsd-update install installs the new kernel
      First upgrade install finished, old kernel still runningReboot
      New kernel is running, old userland remains installedfreebsd-update install installs userland
      Userland install requested package rebuild or upgradeComplete that package step, then run freebsd-update install again
      Final cleanup was interruptedRun freebsd-update install again

      The saved upgrade state makes the next install invocation advance to the appropriate phase. Do not repeat upgrade -r merely because the shell session ended.

      Continue a saved transaction #

      When no other update process is running and storage is writable with adequate free space, run:

      # freebsd-update install
      

      Read its output. A message that no updates are available is different from a failed saved phase. If a kernel was installed but has not been booted, compare the running and installed kernel:

      $ freebsd-version -kr
      

      When they differ at the kernel phase, reboot before installing userland:

      # shutdown -r now
      

      After booting, record the versions again and continue with freebsd-update install. During a major release upgrade, complete the package ABI step at the point requested by the official release instructions, then make the final install call to remove obsolete base-system files.

      Diagnose a repeated failure #

      If the same phase fails again, preserve its full output and check:

      • free space in /var and the update work directory;
      • whether /, /boot, or /var became read-only;
      • DNS and HTTPS reachability when the failure occurs during fetch;
      • local modifications named in a failed configuration merge;
      • a custom kernel or nondefault Components setting;
      • the target release’s errata for a known upgrade issue.

      Do not respond to a checksum, signature, or metadata error by disabling verification. Do not delete a configuration file simply to force a merge. Correct the underlying storage, network, or merge failure and rerun the same saved phase.

      Roll back only the most recent installed update #

      For a patch update that installed successfully but caused a regression, freebsd-update rollback uninstalls the most recently installed update:

      # freebsd-update rollback
      

      Review the proposed changes and reboot when the kernel or modules changed. This rollback is not a general undo mechanism for every phase of a release upgrade, and the configured backup kernel is managed separately. A ZFS-root system with a known pre-change boot environment can instead use the narrower boot-environment recovery procedure .

      Primary references #

      • FreeBSD Handbook: binary updates and release upgrades
      • FreeBSD 15.1-RELEASE upgrading instructions
      • freebsd-update(8)
      • freebsd-update.conf(5)
      • freebsd-version(1)

      Independent documentation. Not affiliated with or endorsed by the FreeBSD Project or the FreeBSD Foundation.

      Report a bug
      • Synopsis
      • Record the current state
      • Interpret the phase
      • Continue a saved transaction
      • Diagnose a repeated failure
      • Roll back only the most recent installed update
      • Primary references