Concrete fixes for the failure modes people hit first: profile save, uploads, build issues, and local environment problems.
- Profile save failures
- Upload and download failure patterns
- Build and runtime setup issues
- Local security tool interference
Troubleshooting
Profile save fails with AccessDenied
Meaning:
- the keys authenticated
- the backend reached R2
- the credential is missing bucket-list permission
What to check:
- Confirm the keys belong to the intended Cloudflare account.
- Confirm the policy allows bucket listing.
- 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:
- Account ID typo
- Access Key ID / Secret mismatch
- Network interception or TLS inspection on the machine
- 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
What to collect:
- exact bucket
- target prefix
- whether the failure affects files, folders, or both
- whether small files succeed while large files fail
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 onlynpm 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.