How to Stop iCloud and Dropbox From Blocking Drive Ejection

Cloud sync services are notorious for preventing external drive ejection on Mac. Here's why they hold onto your drives and how to work around it.

You closed every app. You saved everything. You click eject and macOS says the drive is still in use. You run lsof and see bird, cloudd, or Dropbox in the output. A cloud sync service is holding your drive hostage.

This is one of the most common and least understood causes of ejection failures on Mac. Cloud sync services run constantly in the background, and they’re designed to monitor files for changes. That monitoring means open file handles, and open file handles mean your drive won’t eject.

Why sync services block ejection

Cloud sync services work by watching folders for changes. When a file is created, modified, or deleted, the service detects it and syncs the change to the cloud. To detect these changes, the service maintains open file handles or uses filesystem event watchers on the directories it monitors.

The problem occurs when any of the monitored paths exist on your external drive. This can happen in several ways:

You explicitly stored a sync folder on the drive. Maybe you moved your Dropbox folder to the external drive for space reasons, or you keep a project folder there that’s shared through iCloud Drive.

An application created a file on the drive that a sync service claimed. Some apps save temporary files, caches, or project metadata on whatever volume they’re working from.

Spotlight indexed your drive and a sync service picked up on the index data. This is indirect, but it happens.

iCloud specifically

iCloud’s sync daemon on macOS is called bird (yes, really). You’ll also see cloudd handling some sync operations. These processes run as system services and restart automatically if you quit them.

If bird is blocking your drive, it’s monitoring a file or folder on that volume. Common triggers include:

  • iCloud Desktop & Documents: If you have this feature enabled and your external drive appears as a location in Finder, iCloud might index paths related to it.
  • Preview and QuickLook: Opening a file from your external drive in Preview can create iCloud-synced recent file references.
  • Pages, Numbers, or Keynote: These apps auto-save to iCloud by default. If you opened a document from your external drive, the app might maintain a connection between the local file and an iCloud reference.

To check if iCloud is your blocker:

lsof /Volumes/YourDriveName | grep -i bird
lsof /Volumes/YourDriveName | grep -i cloudd

Dropbox specifically

Dropbox is even more aggressive about file monitoring. On modern macOS versions, the Dropbox client uses Apple’s File Provider framework (the older kernel extension approach was deprecated in macOS 12.3) to monitor filesystem operations in real time.

If your Dropbox folder or any Dropbox-synced folder is on your external drive, Dropbox will maintain persistent connections to that volume. Even files that finished syncing long ago might have Dropbox’s file handles on them for monitoring purposes.

You may also see Apple’s fileproviderd process holding files open on behalf of Dropbox. This is the system daemon that manages all File Provider extensions, including Dropbox, OneDrive, and Google Drive. It can create additional file handles on volumes those services are monitoring.

The most reliable approach with Dropbox: quit the Dropbox application entirely before ejecting. Click the Dropbox icon in the menu bar, click your profile picture, and select Quit. After ejecting your drive, reopen Dropbox.

Google Drive and OneDrive

Google Drive’s desktop app (Drive for Desktop) creates a virtual drive that can interact with your external drives through file operations. If you copied files between Google Drive and your external drive, the Drive client might maintain references.

OneDrive behaves similarly to Dropbox, with background file monitoring. It’s generally less aggressive about holding file handles, but it can still block ejection.

Both services can be paused or quit from their menu bar icons before ejecting.

The practical workflow

If you regularly work with files on external drives and use cloud sync services, build the habit of pausing sync before ejecting.

For iCloud, there’s no easy pause button, but you can temporarily disable iCloud Drive in System Settings > Apple ID > iCloud > iCloud Drive. This is disruptive though.

For Dropbox, pause syncing from the menu bar icon. Click the Dropbox icon, click your profile, and select “Pause syncing.”

For Google Drive, click the Drive icon in the menu bar and select “Pause syncing.”

After pausing, wait a few seconds for open file handles to close, then eject your drive.

Preventing the problem

The cleanest approach is to never store cloud-synced folders on external drives. Keep sync folders on your Mac’s internal storage and use external drives for data that doesn’t need to sync.

If you must keep synced content on an external drive, create a clear separation. Put synced files in one folder and non-synced files in another. When you need to eject, you’ll know which sync service to pause.

Avoid opening files from your external drive with apps that auto-save to iCloud (Pages, Numbers, Keynote, Preview). Or at minimum, close those apps and give them a moment to release file handles before ejecting.

When pausing isn’t enough

Sometimes you’ve paused sync, quit the apps, and the drive still won’t eject. The sync service left a stale file handle that persists even after pausing.

You can force-release these handles by killing the specific process:

kill $(lsof -t /Volumes/YourDriveName)

This kills every process using the drive. It’s aggressive but effective.

Ejecta handles this more surgically. It identifies exactly which processes are holding your drive, including cloud sync daemons, and lets you quit them individually. Instead of killing everything connected to the drive, you can target just the bird process or just the Dropbox helper that’s causing the problem. It’s particularly useful when you’re not sure which of several sync services is the culprit.

Cloud sync and external drives don’t have to be in conflict. You just need visibility into what’s happening behind the scenes.