DEV Community

Andrew
Andrew

Posted on

“Calibre on macOS: When Your Kindle Connects but File Transfers Don’t”

Field Report: Calibre (app) on macOS Sonoma — When It Sees the Kindle, But Won’t Touch It

Machine: MacBook Pro 14" (M1 Pro)
System: macOS Sonoma 14.4
Goal: Clean up and sideload a couple of EPUBs to my Kindle without wrestling with Amazon’s web interface.

I’ve used Calibre (app) on and off for years. Solid, slightly nerdy eBook manager. The current macOS build is available from the official site: https://calibre-ebook.com/ and there’s also an App Store search listing here: https://apps.apple.com/us/search?term=Calibre

This wasn’t my first install. But it was the first time I tried it after a clean Sonoma setup.


What I Wanted

Simple workflow:

  1. Import EPUB.
  2. Convert if needed.
  3. Plug Kindle in via USB-C.
  4. Send to device.

Done in five minutes. That was the plan.

The tool launched fine. Indexed my library. No crash, no Gatekeeper drama. So far, boring in a good way.

Then I connected the Kindle.

Calibre saw it. Status bar: “Device detected.”

And then… nothing. “Send to device” was greyed out. Device panel showed up, but it couldn’t access storage.

No error popup. Just a polite refusal to interact.


First Attempt: Cable, Obviously

I swapped the USB-C cable.

Then another one.

Then a different port.

The Finder could see the Kindle as a removable drive. So hardware was fine. macOS mounted it under /Volumes/Kindle.

Which meant this wasn’t a physical connection issue.


Second Attempt: Reinstall the App (Wrong Direction)

I uninstalled it completely, including preferences:

rm -rf ~/Library/Preferences/calibre
Enter fullscreen mode Exit fullscreen mode

Reinstalled from the official site.

Still the same behavior. Device detected. No file access.

At this point I checked Console.app and finally saw something useful: sandbox denial messages related to external volumes.

That rang a bell.


The Real Problem: Files & Folders Permissions

Since macOS Mojave, apps need explicit permission to access external drives and protected locations. Apple’s documentation on privacy controls is here:
https://support.apple.com/en-us/HT209175

Calibre wasn’t crashing. It simply didn’t have permission to read/write to removable volumes.

I went to:

System Settings → Privacy & Security → Files and Folders.

The app wasn’t listed with access to Removable Volumes.

That was the missing piece.

The catch is that macOS only shows the permission toggle after the app requests it. And sometimes, that first request doesn’t surface properly. In my case, I never saw a dialog.

So I reset the TCC permissions for it:

tccutil reset All net.kovidgoyal.calibre
Enter fullscreen mode Exit fullscreen mode

Launched again. Plugged the Kindle in.

This time, macOS displayed the proper prompt:
“Calibre would like to access files on a removable volume.”

Clicked Allow.

Instantly, “Send to device” lit up.

No restart required.


Side Note: Gatekeeper Wasn’t the Villain

Just to rule things out, I double-checked Gatekeeper behavior. Apple’s overview of how macOS handles downloaded apps is here:
https://support.apple.com/en-us/HT202491

But this wasn’t about code signing or notarization. The binary was fine. The issue was runtime permissions — a much subtler layer.

While digging through macOS-specific packaging notes and distribution references, I bookmarked this page because it helped confirm I was working with the proper macOS build and not some repackaged variant:
https://studiosbyaphrodite.com/education/33694-calibre.html

It didn’t fix the issue directly, but it confirmed the environment I expected.


What Actually Worked

The solution boiled down to:

  • Reset privacy permissions with tccutil.
  • Relaunch the app.
  • Explicitly allow access to removable volumes when prompted.

After that, transfers worked normally. EPUB to AZW3 conversion went smoothly. File copied to the Kindle in under 10 seconds. Device index refreshed properly.

No performance issues. No further permissions weirdness.


If I Knew Then What I Know Now

I wouldn’t have wasted time reinstalling.

On modern macOS versions, if an app sees a device but can’t interact with its filesystem, it’s almost always privacy controls.

Especially with:

  • External drives
  • USB devices exposing storage
  • Network shares

The OS enforces these boundaries quietly.

If I were setting this up again from scratch, I’d:

  • Install from the official site.
  • Immediately connect the Kindle.
  • Watch carefully for the permission prompt.
  • If it doesn’t appear, reset TCC before doing anything else.

Sonoma is stricter than older macOS releases. It doesn’t break things loudly anymore — it just blocks them politely.

The good news is that once the permission layer is sorted, Calibre behaves exactly as expected. Stable, fast, no drama.

The friction wasn’t the software.

It was macOS protecting me from myself.

Top comments (0)