[Solved] "Unknown Error" when trying to authorize Google Drive

What is the problem you are having with rclone?

"Unknown Error" when trying to authorize Google Drive

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

rclone v1.59.1

  • os/version: debian 11.4 (64 bit)
  • os/kernel: 5.10.0-17-amd64 (x86_64)
  • os/type: linux
  • os/arch: amd64
  • go/version: go1.18.5
  • go/linking: static
  • go/tags: none

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

Google Drive

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

rclone config

The rclone config contents with secrets removed.

[drive]
type = drive
scope = drive.readonly

A log from the command with the -vv flag

rclone -vv config
2022/09/07 18:48:43 DEBUG : rclone: Version "v1.59.1" starting with parameters ["rclone" "-vv" "config"]
2022/09/07 18:48:43 DEBUG : Using config file from "/home/###/.config/rclone/rclone.conf"
Current remotes:

Name                 Type
====                 ====
drive                drive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> e

Select remote.
Choose a number from below, or type in an existing value.
 1 > drive
remote> 1

Editing existing "drive" remote with options:
- type: drive
- scope: drive.readonly

2022/09/07 18:48:50 DEBUG : drive: config in: state="*all", result=""
2022/09/07 18:48:50 DEBUG : drive: config out: out=&{State:*all-set,0,false Option: OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:48:50 DEBUG : drive: config: reading config parameter "client_id"
Option client_id.
Google Application Client Id
Setting your own is recommended.
See https://rclone.org/drive/#making-your-own-client-id for how to create your own.
If you leave this blank, it will use an internal key which is low performance.
Enter a value. Press Enter to leave empty.
client_id> 

2022/09/07 18:48:58 DEBUG : drive: config in: state="*all-set,0,false", result=""
2022/09/07 18:48:58 DEBUG : drive: config out: out=&{State:*all,1,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:48:58 DEBUG : drive: config in: state="*all,1,false", result=""
2022/09/07 18:48:58 DEBUG : drive: config out: out=&{State:*all-set,1,false Option: OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:48:58 DEBUG : drive: config: reading config parameter "client_secret"
Option client_secret.
OAuth Client Secret.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_secret> 

2022/09/07 18:49:00 DEBUG : drive: config in: state="*all-set,1,false", result=""
2022/09/07 18:49:00 DEBUG : drive: config out: out=&{State:*all,2,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:00 DEBUG : drive: config in: state="*all,2,false", result=""
2022/09/07 18:49:00 DEBUG : drive: config out: out=&{State:*all,3,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:00 DEBUG : drive: config in: state="*all,3,false", result=""
2022/09/07 18:49:00 DEBUG : drive: config out: out=&{State:*all,4,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:00 DEBUG : drive: config in: state="*all,4,false", result=""
2022/09/07 18:49:00 DEBUG : drive: config out: out=&{State:*all,5,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:00 DEBUG : drive: config in: state="*all,5,false", result=""
2022/09/07 18:49:00 DEBUG : drive: config out: out=&{State:*all-set,5,false Option:drive.readonly OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:00 DEBUG : drive: config: reading config parameter "scope"
Option scope.
Scope that rclone should use when requesting access from drive.
Choose a number from below, or type in your own string value.
Press Enter for the default (drive.readonly).
 1 / Full access all files, excluding Application Data Folder.
   \ (drive)
 2 / Read-only access to file metadata and file contents.
   \ (drive.readonly)
   / Access to files created by rclone only.
 3 | These are visible in the drive website.
   | File authorization is revoked when the user deauthorizes the app.
   \ (drive.file)
   / Allows read and write access to the Application Data folder.
 4 | This is not visible in the drive website.
   \ (drive.appfolder)
   / Allows read-only access to file metadata but
 5 | does not allow any access to read or download file content.
   \ (drive.metadata.readonly)
scope> 2

2022/09/07 18:49:01 DEBUG : drive: config in: state="*all-set,5,false", result="drive.readonly"
2022/09/07 18:49:01 DEBUG : drive: config out: out=&{State:*all,6,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:01 DEBUG : drive: config in: state="*all,6,false", result=""
2022/09/07 18:49:01 DEBUG : drive: config out: out=&{State:*all,7,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:01 DEBUG : drive: config in: state="*all,7,false", result=""
2022/09/07 18:49:01 DEBUG : drive: config out: out=&{State:*all-set,7,false Option: OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:01 DEBUG : drive: config: reading config parameter "service_account_file"
Option service_account_file.
Service Account Credentials JSON file path.
Leave blank normally.
Needed only if you want use SA instead of interactive login.
Leading `~` will be expanded in the file name as will environment variables such as `${RCLONE_CONFIG_DIR}`.
Enter a value. Press Enter to leave empty.
service_account_file> 

2022/09/07 18:49:02 DEBUG : drive: config in: state="*all-set,7,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,8,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,8,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,9,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,9,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,10,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,10,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,11,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,11,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,12,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,12,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,13,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,13,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,14,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,14,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,15,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,15,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,16,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,16,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,17,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,17,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,18,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,18,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,19,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,19,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,20,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,20,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,21,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,21,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,22,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,22,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,23,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,23,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,24,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,24,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,25,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,25,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,26,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,26,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,27,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,27,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,28,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,28,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,29,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,29,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,30,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,30,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,31,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,31,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,32,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,32,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,33,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,33,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,34,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,34,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,35,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,35,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,36,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,36,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,37,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,37,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,38,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,38,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,39,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,39,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,40,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,40,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,41,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,41,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,42,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,42,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all,43,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config in: state="*all,43,false", result=""
2022/09/07 18:49:02 DEBUG : drive: config out: out=&{State:*all-advanced Option:false OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:02 DEBUG : drive: config: reading config parameter "config_fs_advanced"
Edit advanced config?
y) Yes
n) No (default)
y/n> 

2022/09/07 18:49:04 DEBUG : drive: config in: state="*all-advanced", result="false"
2022/09/07 18:49:04 DEBUG : drive: config out: out=&{State:*postconfig Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:04 DEBUG : drive: config in: state="*postconfig", result=""
2022/09/07 18:49:04 DEBUG : drive: config in: state="", result=""
2022/09/07 18:49:04 DEBUG : drive: config out: out=&{State:*oauth,teamdrive,, Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:04 DEBUG : drive: config out: out=&{State:*oauth,teamdrive,, Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:04 DEBUG : drive: config in: state="*oauth,teamdrive,,", result=""
2022/09/07 18:49:04 DEBUG : drive: config out: out=&{State:*oauth-confirm,teamdrive,, Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:04 DEBUG : drive: config in: state="*oauth-confirm,teamdrive,,", result=""
2022/09/07 18:49:04 DEBUG : drive: config out: out=&{State:*oauth-islocal,teamdrive,, Option:true OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:04 DEBUG : drive: config: reading config parameter "config_is_local"
Use auto config?
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine

y) Yes (default)
n) No
y/n> 

2022/09/07 18:49:05 DEBUG : drive: config in: state="*oauth-islocal,teamdrive,,", result="true"
2022/09/07 18:49:05 DEBUG : drive: config out: out=&{State:*oauth-do,teamdrive,, Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/09/07 18:49:05 DEBUG : drive: config in: state="*oauth-do,teamdrive,,", result=""
2022/09/07 18:49:05 DEBUG : Starting auth server on 127.0.0.1:53682
2022/09/07 18:49:05 NOTICE: If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=Z3lteVaT_tenYUik06XCzQ
2022/09/07 18:49:05 NOTICE: Log in and authorize rclone for access
2022/09/07 18:49:05 NOTICE: Waiting for code...
2022/09/07 18:49:06 DEBUG : Redirecting browser to: https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=202264815644.apps.googleusercontent.com&redirect_uri=http%3A%2F%2F127.0.0.1%3A53682%2F&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly&state=Z3lteVaT_tenYUik06XCzQ

After this I get the error in the browser and the command hangs. I tried clearing the site data and cookies for google.com and authorizing from a private window, without success.

Thanks in advance !

hello and welcome to the forum,

If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=Z3lteVaT_tenYUik06XCzQ
might try to a open different web browser and goto http://127.0.0.1:53682
or
try a private window

Already tried from a private window, but for some reason it succeeded in chromium. Thank you !