Rclone silently hides Dropbox Paper files (and other "non-downloadable" files)

What is the problem you are having with rclone?

When used with Dropbox, rclone is not showing "non-downloadable" files. These are files like Google Docs, Dropbox Paper docs, etc. They are documented in the Dropbox API.

On other files, rclone works fine. For now, rclone can't actually do anything with non-downloadable files, since they can't be copied as normal. But it should at least not hide them. I almost panicked when they were mysteriously missing!

Perhaps eventually we can make rclone "copy" these files via the export API, but let's consider that a separate question for the moment.

Run the command 'rclone version' and share the full output of the command.

✗ rclone version
rclone v1.69.0
- os/version: linuxmint 22.1 (64 bit)
- os/kernel: 6.8.0-53-generic (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.23.4
- go/linking: static
- go/tags: none

Which cloud storage system are you using? (eg Google Drive)

Dropbox

The command you were trying to run (eg rclone copy /tmp remote:tmp)

Listing a directory that contains only a single Dropbox Paper file.

rclone lsf dropbox:rclonetest

The rclone config contents with secrets removed.

[dropbox]
type = dropbox
token = <REDACTED>

A log from the command with the -vv flag

$ rclone lsf dropbox:rclonetest
2025/02/11 00:01:42 DEBUG : rclone: Version "v1.69.0" starting with parameters ["rclone" "lsf" "-vv" "dropbox:rclonetest"]
2025/02/11 00:01:42 DEBUG : Creating backend with remote "dropbox:rclonetest"
2025/02/11 00:01:42 DEBUG : Using config file from "/home/vasi/.config/rclone/rclone.conf"
2025/02/11 00:01:42 DEBUG : 6 go routines active
2025/02/11 00:01:42 INFO  : Dropbox root 'rclonetest': Committing uploads - please wait...

If I try to list normal "downloadable" files, it works ok:

$ rclone lsf -vv dropbox:simpledir 
2025/02/11 00:04:22 DEBUG : rclone: Version "v1.69.0" starting with parameters ["rclone" "lsf" "-vv" "dropbox:simpledir"]
2025/02/11 00:04:22 DEBUG : Creating backend with remote "dropbox:simpledir"
2025/02/11 00:04:22 DEBUG : Using config file from "/home/vasi/.config/rclone/rclone.conf"
test.txt
2025/02/11 00:04:22 DEBUG : 6 go routines active
2025/02/11 00:04:22 INFO  : Dropbox root 'simpledir': Committing uploads - please wait...

Debugging

Here's an example of some Go code that lists the directory, using the same dropbox-sdk-go-unofficial dependency as rclone uses. Running it works:

$ export API_TOKEN=<REDACTED>
$ go run main.go                  
&{Metadata:{Name:RcloneTest.paper PathLower:/rclonetest/rclonetest.paper PathDisplay:/RcloneTest/RcloneTest.paper ParentSharedFolderId: PreviewUrl:} Id:id:0pVIHY9IlbsAAAAAAAAQNg ClientModified:2025-02-11 04:55:24 +0000 UTC ServerModified:2025-02-11 04:55:24 +0000 UTC Rev:62dd6a1fef84900248ffc Size:200 MediaInfo:<nil> SymlinkInfo:<nil> SharingInfo:<nil> IsDownloadable:false ExportInfo:0xc0001d5770 PropertyGroups:[] HasExplicitSharedMembers:false ContentHash:dbd5054944de8f1892670752e1f1a658d8d0e6a3eddcf008f9a2eaecb0a3fca2 FileLockInfo:<nil>}

You can see the result has IsDownloadable:false, but is still listed.

However, rclone does this in an odd way:

arg := files.ListFolderArg{
				Path:      f.opt.Enc.FromStandardPath(root),
				Recursive: false,
				Limit:     1000,
			}

If it instead called NewListFolderArg(), it would get the recommended parameters, which include non-downloadable files.

welcome to the forum,

not seeing a bug. if rclone cannot copy a file, rclone should not list the file.

maybe you want to request a new feature or post an issue at github

Added this as a feature, and it's merged! Dropbox: Support Dropbox Paper by vasi · Pull Request #8371 · rclone/rclone · GitHub

1 Like