-
-
Notifications
You must be signed in to change notification settings - Fork 4.6k
Open
Description
What is the problem you are having with rclone?
Configuring rclone with Onedrive Personal on a device that does not have a browser does not work.
The token can successfully be generated on the device with browser and it can be copied at full length in the headless device's terminal.
Also the token can be inspected using jwt.io for example --> it contains a json with an embedded access_token.
What is your rclone version (output from rclone version
)
Tested both latest stable version 1.70.3
and 1.71.0-beta.8897.5e539c6a7-linux-amd64
Which OS you are using and how many bits (e.g. Windows 7, 64 bit)
Headless device: Linux, AMD64
Browser device: Windows 10, AMD64
Which cloud storage system are you using? (e.g. Google Drive)
Onedrive Personal (with subscription)
The command you were trying to run (e.g. rclone copy /tmp remote:tmp
)
rclone config
A log from the command with the -vv
flag (e.g. output from rclone -vv copy /tmp remote:tmp
)
rsom@tinytc:~/rclone-v1.71.0-beta.8897.5e539c6a7-linux-amd64$ ./rclone config -vv
2025/07/15 19:05:48 DEBUG : rclone: Version "v1.71.0-beta.8897.5e539c6a7" starting with parameters ["./rclone" "config" "-vv"]
2025/07/15 19:05:48 DEBUG : Using config file from "/home/rsom/.config/rclone/rclone.conf"
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
Enter name for new remote.
name> onedrive_personal
Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
[...]
36 / Microsoft Azure Blob Storage
\ (azureblob)
37 / Microsoft Azure Files
\ (azurefiles)
38 / Microsoft OneDrive
\ (onedrive)
[...]
Storage> 38
2025/07/15 19:06:01 DEBUG : onedrive_personal: config in: state="*all", result=""
2025/07/15 19:06:01 DEBUG : onedrive_personal: config out: out=&{State:*all-set,0,false Option: OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:01 DEBUG : onedrive_personal: config: reading config parameter "client_id"
Option client_id.
OAuth Client Id.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_id> XXX
2025/07/15 19:06:15 DEBUG : onedrive_personal: config in: state="*all-set,0,false", result="XXX"
2025/07/15 19:06:15 DEBUG : Saving config "client_id" in section "onedrive_personal" of the config file
2025/07/15 19:06:15 DEBUG : onedrive_personal: config out: out=&{State:*all,1,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:15 DEBUG : onedrive_personal: config in: state="*all,1,false", result=""
2025/07/15 19:06:15 DEBUG : onedrive_personal: config out: out=&{State:*all-set,1,false Option: OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:15 DEBUG : onedrive_personal: 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> XXX
2025/07/15 19:06:25 DEBUG : onedrive_personal: config in: state="*all-set,1,false", result="XXX"
2025/07/15 19:06:25 DEBUG : Saving config "client_secret" in section "onedrive_personal" of the config file
2025/07/15 19:06:25 DEBUG : onedrive_personal: config out: out=&{State:*all,2,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:25 DEBUG : onedrive_personal: config in: state="*all,2,false", result=""
2025/07/15 19:06:25 DEBUG : onedrive_personal: config out: out=&{State:*all,3,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:25 DEBUG : onedrive_personal: config in: state="*all,3,false", result=""
2025/07/15 19:06:25 DEBUG : onedrive_personal: config out: out=&{State:*all,4,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:25 DEBUG : onedrive_personal: config in: state="*all,4,false", result=""
2025/07/15 19:06:25 DEBUG : onedrive_personal: config out: out=&{State:*all,5,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:25 DEBUG : onedrive_personal: config in: state="*all,5,false", result=""
2025/07/15 19:06:25 DEBUG : onedrive_personal: config out: out=&{State:*all,6,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:25 DEBUG : onedrive_personal: config in: state="*all,6,false", result=""
2025/07/15 19:06:25 DEBUG : onedrive_personal: config out: out=&{State:*all-set,6,false Option:global OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:25 DEBUG : onedrive_personal: config: reading config parameter "region"
Option region.
Choose national cloud region for OneDrive.
Choose a number from below, or type in your own value of type string.
Press Enter for the default (global).
1 / Microsoft Cloud Global
\ (global)
2 / Microsoft Cloud for US Government
\ (us)
3 / Microsoft Cloud Germany (deprecated - try global region first).
\ (de)
4 / Azure and Office 365 operated by Vnet Group in China
\ (cn)
region> 1
2025/07/15 19:06:26 DEBUG : onedrive_personal: config in: state="*all-set,6,false", result="global"
2025/07/15 19:06:26 DEBUG : onedrive_personal: config out: out=&{State:*all,7,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:26 DEBUG : onedrive_personal: config in: state="*all,7,false", result=""
2025/07/15 19:06:26 DEBUG : onedrive_personal: config out: out=&{State:*all,8,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:26 DEBUG : onedrive_personal: config in: state="*all,8,false", result=""
2025/07/15 19:06:26 DEBUG : onedrive_personal: config out: out=&{State:*all,9,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:26 DEBUG : onedrive_personal: config in: state="*all,9,false", result=""
2025/07/15 19:06:26 DEBUG : onedrive_personal: config out: out=&{State:*all,10,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:26 DEBUG : onedrive_personal: config in: state="*all,10,false", result=""
2025/07/15 19:06:26 DEBUG : onedrive_personal: config out: out=&{State:*all,11,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:26 DEBUG : onedrive_personal: config in: state="*all,11,false", result=""
2025/07/15 19:06:26 DEBUG : onedrive_personal: config out: out=&{State:*all,12,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:26 DEBUG : onedrive_personal: config in: state="*all,12,false", result=""
2025/07/15 19:06:26 DEBUG : onedrive_personal: config out: out=&{State:*all,13,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:26 DEBUG : onedrive_personal: config in: state="*all,13,false", result=""
2025/07/15 19:06:26 DEBUG : onedrive_personal: config out: out=&{State:*all-set,13,false Option: OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:26 DEBUG : onedrive_personal: config: reading config parameter "tenant"
Option tenant.
ID of the service principal's tenant. Also called its directory ID.
Set this if using
- Client Credential flow
Enter a value. Press Enter to leave empty.
tenant> XXX
2025/07/15 19:06:33 DEBUG : onedrive_personal: config in: state="*all-set,13,false", result="XXX"
2025/07/15 19:06:33 DEBUG : Saving config "tenant" in section "onedrive_personal" of the config file
2025/07/15 19:06:33 DEBUG : onedrive_personal: config out: out=&{State:*all,14,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:33 DEBUG : onedrive_personal: config in: state="*all,14,false", result=""
2025/07/15 19:06:33 DEBUG : onedrive_personal: config out: out=&{State:*all,15,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:33 DEBUG : onedrive_personal: config in: state="*all,15,false", result=""
2025/07/15 19:06:33 DEBUG : onedrive_personal: config out: out=&{State:*all,16,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:33 DEBUG : onedrive_personal: config in: state="*all,16,false", result=""
2025/07/15 19:06:33 DEBUG : onedrive_personal: config out: out=&{State:*all,17,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:33 DEBUG : onedrive_personal: config in: state="*all,17,false", result=""
2025/07/15 19:06:33 DEBUG : onedrive_personal: config out: out=&{State:*all,18,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:33 DEBUG : onedrive_personal: config in: state="*all,18,false", result=""
2025/07/15 19:06:33 DEBUG : onedrive_personal: config out: out=&{State:*all,19,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:33 DEBUG : onedrive_personal: config in: state="*all,19,false", result=""
2025/07/15 19:06:33 DEBUG : onedrive_personal: config out: out=&{State:*all,20,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:33 DEBUG : onedrive_personal: config in: state="*all,20,false", result=""
2025/07/15 19:06:33 DEBUG : onedrive_personal: config out: out=&{State:*all,21,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:33 DEBUG : onedrive_personal: config in: state="*all,21,false", result=""
2025/07/15 19:06:33 DEBUG : onedrive_personal: config out: out=&{State:*all,22,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:33 DEBUG : onedrive_personal: config in: state="*all,22,false", result=""
2025/07/15 19:06:33 DEBUG : onedrive_personal: config out: out=&{State:*all,23,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:33 DEBUG : onedrive_personal: config in: state="*all,23,false", result=""
2025/07/15 19:06:33 DEBUG : onedrive_personal: config out: out=&{State:*all,24,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:33 DEBUG : onedrive_personal: config in: state="*all,24,false", result=""
2025/07/15 19:06:33 DEBUG : onedrive_personal: config out: out=&{State:*all,25,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:33 DEBUG : onedrive_personal: config in: state="*all,25,false", result=""
2025/07/15 19:06:33 DEBUG : onedrive_personal: config out: out=&{State:*all,26,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:33 DEBUG : onedrive_personal: config in: state="*all,26,false", result=""
2025/07/15 19:06:33 DEBUG : onedrive_personal: config out: out=&{State:*all,27,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:33 DEBUG : onedrive_personal: config in: state="*all,27,false", result=""
2025/07/15 19:06:33 DEBUG : onedrive_personal: config out: out=&{State:*all,28,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:33 DEBUG : onedrive_personal: config in: state="*all,28,false", result=""
2025/07/15 19:06:33 DEBUG : onedrive_personal: config out: out=&{State:*all,29,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:33 DEBUG : onedrive_personal: config in: state="*all,29,false", result=""
2025/07/15 19:06:33 DEBUG : onedrive_personal: config out: out=&{State:*all-advanced Option:false OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:33 DEBUG : onedrive_personal: config: reading config parameter "config_fs_advanced"
Edit advanced config?
y) Yes
n) No (default)
y/n> n
2025/07/15 19:06:36 DEBUG : onedrive_personal: config in: state="*all-advanced", result="false"
2025/07/15 19:06:36 DEBUG : onedrive_personal: config out: out=&{State:*postconfig Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:36 DEBUG : onedrive_personal: config in: state="*postconfig", result=""
2025/07/15 19:06:36 DEBUG : onedrive_personal: config in: state="", result=""
2025/07/15 19:06:36 DEBUG : onedrive_personal: config out: out=&{State:*oauth,choose_type,, Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:36 DEBUG : onedrive_personal: config out: out=&{State:*oauth,choose_type,, Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:36 DEBUG : onedrive_personal: config in: state="*oauth,choose_type,,", result=""
2025/07/15 19:06:36 DEBUG : onedrive_personal: config out: out=&{State:*oauth-confirm,choose_type,, Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:36 DEBUG : onedrive_personal: config in: state="*oauth-confirm,choose_type,,", result=""
2025/07/15 19:06:36 DEBUG : onedrive_personal: config out: out=&{State:*oauth-islocal,choose_type,, Option:true OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:36 DEBUG : onedrive_personal: config: reading config parameter "config_is_local"
Use web browser to automatically authenticate rclone with remote?
* Say Y if the machine running rclone has a web browser you can use
* Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.
y) Yes (default)
n) No
y/n> n
2025/07/15 19:06:46 DEBUG : onedrive_personal: config in: state="*oauth-islocal,choose_type,,", result="false"
2025/07/15 19:06:46 DEBUG : onedrive_personal: config out: out=&{State:*oauth-remote,choose_type,, Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:46 DEBUG : onedrive_personal: config in: state="*oauth-remote,choose_type,,", result=""
2025/07/15 19:06:46 DEBUG : sending client_id = "XXX"
2025/07/15 19:06:46 DEBUG : sending client_secret = "XXX"
2025/07/15 19:06:46 DEBUG : sending tenant = "XXX"
2025/07/15 19:06:46 DEBUG : onedrive_personal: config out: out=&{State:*oauth-authorize,choose_type,, Option: OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:06:46 DEBUG : onedrive_personal: config: reading config parameter "config_token"
Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):
rclone authorize "onedrive" "XXX"
Then paste the result.
Enter a value.
config_token> XXX
2025/07/15 19:07:58 DEBUG : onedrive_personal: config in: state="*oauth-authorize,choose_type,,", result="XXX"
2025/07/15 19:07:58 DEBUG : onedrive_personal: config out: out=&{State:*oauth-authorize,choose_type,, Option:<nil> OAuth:<nil> Error:Couldn't decode response - try again (make sure you are using a matching version of rclone on both sides: invalid character 'e' looking for beginning of value
Result:}, err=<nil>
Couldn't decode response - try again (make sure you are using a matching version of rclone on both sides: invalid character 'e' looking for beginning of value
2025/07/15 19:07:58 DEBUG : onedrive_personal: config in: state="*oauth-authorize,choose_type,,", result=""
2025/07/15 19:07:58 DEBUG : onedrive_personal: config out: out=&{State:*oauth-done,choose_type,, Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:07:58 DEBUG : onedrive_personal: config in: state="*oauth-done,choose_type,,", result=""
2025/07/15 19:07:58 DEBUG : onedrive_personal: config out: out=&{State:choose_type Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2025/07/15 19:07:58 DEBUG : onedrive_personal: config in: state="choose_type", result=""
2025/07/15 19:07:58 DEBUG : onedrive_personal: config out: out=<nil>, err=failed to configure OneDrive: empty token found - please run "rclone config reconnect onedrive_personal:"
Error: failed to configure OneDrive: empty token found - please run "rclone config reconnect onedrive_personal:"
Usage:
rclone config [flags]
rclone config [command]
Available commands:
create Create a new remote with name, type and options.
delete Delete an existing remote.
disconnect Disconnects user from remote
dump Dump the config file as JSON.
edit Enter an interactive configuration session.
encryption set, remove and check the encryption for the config file
file Show path of configuration file in use.
password Update password in an existing remote.
paths Show paths used for configuration, cache, temp etc.
providers List in JSON format all the providers and options.
reconnect Re-authenticates user with remote.
redacted Print redacted (decrypted) config file, or the redacted config for a single remote.
show Print (decrypted) config file, or the config for a single remote.
touch Ensure configuration file exists.
update Update options in an existing remote.
userinfo Prints info about logged in user of remote.
Flags:
-h, --help help for config
Use "rclone [command] --help" for more information about a command.
Use "rclone help flags" for to see the global flags.
Use "rclone help backends" for a list of supported services.
2025/07/15 19:07:58 NOTICE: Fatal error: failed to configure OneDrive: empty token found - please run "rclone config reconnect onedrive_personal:"
rsom@tinytc:~/rclone-v1.71.0-beta.8897.5e539c6a7-linux-amd64$
How to use GitHub
- Please use the 👍 reaction to show that you are affected by the same issue.
- Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
- Subscribe to receive notifications on status change and new comments.
Metadata
Metadata
Assignees
Labels
No labels