Docs

Troubleshooting

Start here before opening support. Most first-line issues are reproducible configuration or environment problems.

WindowsmacOSLinux
TroubleshootingSupport

Concrete fixes for the failure modes people hit first: profile save, install warnings, uploads, build issues, and local environment problems.

  • Installer warnings on Windows and macOS
  • Profile save failures
  • Upload and download failure patterns
  • Build and runtime setup issues
  • Local security tool interference
Applies to
WindowsmacOSLinux
Covers
TroubleshootingSupport

Troubleshooting

Windows shows an Unknown publisher warning during install

Windows SmartScreen may show an Unknown publisher warning for the current beta installer.

That warning is expected for the current beta path.

Before escalating:

  1. Confirm you downloaded the installer from the official release path.
  2. Confirm the product name and source match the official R2 Desk Pro release.
  3. Continue only if the installer source is the expected one.

If the source is correct, treat the SmartScreen warning as install friction for an unsigned beta build, not as proof that the product is malicious or broken.

macOS says the app is from an unidentified developer

Beta macOS builds are not notarized, so Gatekeeper can block the DMG or app on first launch.

If macOS blocks the app:

  1. Download the DMG from the official release path.
  2. Open the DMG and drag R2 Desk Pro.app into Applications.
  3. In Applications, right-click R2 Desk Pro.app and select Open.
  4. Confirm the Open action in the Gatekeeper prompt.
  5. If macOS still blocks the app, open Terminal and run:
xattr -cr "/Applications/R2 Desk Pro.app"
  1. Launch R2 Desk Pro.app again from Applications.

If you installed the app somewhere other than Applications, replace the path in the command with the actual app location, for example "/path/to/R2 Desk Pro.app".

If the app still does not launch after the Open flow and xattr step, re-download the current DMG from the official release path and compare the installed app name and version before opening support.

Profile save fails with AccessDenied

Meaning:

  • the keys authenticated
  • the backend reached R2
  • the credential is missing bucket-list permission

What to check:

  1. Confirm the keys belong to the intended Cloudflare account.
  2. Confirm the policy allows bucket listing.
  3. Re-test with a credential known to have list permission.

This is not a UI-only validation rule. The app intentionally validates against a live bucket-list call.

Profile save fails with a generic service error

Check, in order:

  1. Account ID typo
  2. Access Key ID / Secret mismatch
  3. Network interception or TLS inspection on the machine
  4. Local endpoint security blocking the runtime

If the issue only happens on one machine, compare the same credential on a second machine before assuming the app is at fault.

Upload queue fails immediately

Typical causes:

  • missing object write permission
  • invalid target bucket or prefix
  • antivirus or EDR interference with local file reads
  • access policy mismatch between browse and write permissions
  • online-only files being hydrated locally before the upload can start

What to collect:

  • exact bucket
  • target prefix
  • whether the failure affects files, folders, or both
  • whether small files succeed while large files fail

Upload does not start immediately for OneDrive or another cloud-sync provider

If selected files are online-only placeholders in OneDrive or another cloud-sync provider, Windows may download them locally before upload begins.

That means:

  • the app may appear to wait before transfer progress starts
  • local disk and network activity may happen before the first R2 upload chunk is sent
  • the delay is local file hydration, not necessarily a broken R2 transfer

Confirm the files are available locally before treating the delay as an upload defect.

Downloaded folder structure is not what you expected

Remember that R2 folders are prefixes.

Selected folders are expanded recursively into object keys before download. Local directory structure is derived from object keys, not from a server-side folder entity.

If the output looks wrong, compare:

  • the selected prefix
  • the actual object keys under that prefix
  • the destination directory you chose locally

Blank screen during local development

Use the correct command for the job:

  • npm run dev: frontend preview only
  • npm run tauri:dev: actual desktop runtime

If tauri:dev is failing, make sure port 1420 is available.

If the browser preview works but the desktop app does not, the issue is usually in the Tauri/runtime environment, not React rendering.

Build fails on Windows

Most common causes:

  • MSVC tools not on PATH
  • missing WebView2 runtime
  • antivirus interfering with unsigned binaries

Use a Developer PowerShell or a shell with Visual Studio build tools initialized before running release builds.

Endpoint security or antivirus quarantines the app

Unsigned local builds can trigger heuristic security products, especially on Windows.

Check:

  • whether the quarantined process is the local build or PowerShell wrapper
  • whether the behavior occurs only for debug builds
  • whether the installed release build behaves differently

If endpoint security is aggressive in your environment, whitelist the project/build directory before treating the result as an application defect.

Cache purge is unavailable or fails

Cache purge depends on profile configuration, not just object selection.

Check:

  • Zone ID exists
  • API token exists
  • token has cache purge permission
  • selected object resolves to the intended public URL

If the app cannot map the object to a public URL, purge is unavailable.

Cost analysis numbers do not match billing exactly

Cost analysis is an estimate layer, not a direct Cloudflare billing export.

Expect:

  • current snapshot
  • size-based estimates
  • object count and largest-consumer visibility

Do not expect invoice-grade precision from the in-app estimate view.

When to stop self-diagnosing

Open support when you have:

  • confirmed the issue against the docs
  • reproduced it consistently
  • captured the exact step where expected behavior diverges

Then use the Support and issue reporting page.