Failed to sync: parameter to --backup-dir has to be on the same remote as destination

(base) bob@bob:~
$ rclone sync '/home/bob/Documents/demo1/' 'Documents_Rclone:/home/bob/Documents/demo/' --backup-dir '/home/bob/Documents/demo/backup'
2023/08/31 08:00:12 ERROR : Fatal error received - not attempting retries
2023/08/31 08:00:12 Failed to sync: parameter to --backup-dir has to be on the same remote as destination

As you see, I want the source folder is '/home/bob/Documents/demo1/' and I want it to sync with the folder connected with Gdrive, '/home/bob/Documents/demo' and I want '/home/bob/Documents/demo/backup' to be the backup directory as it's in the same directory as the folder connected with Gdrive.

I have given info such as a logfile, version, config etc below

$ rclone version
rclone v1.63.1
- os/version: debian 11.7 (64 bit)
- os/kernel: [redacted] (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.20.6
- go/linking: static
- go/tags: none

I am Using rclone to sync with Google Drive

The command I was trying to run

rclone sync '/home/bob/Documents/demo1/' 'Documents_Rclone:/home/bob/Documents/demo/' --backup-dir '/home/bob/Documents/demo/backup'
Documents_Rclone]
type = drive
scope = drive
token = {"access_token":"[redacted]>
team_drive =

[demo]
type = drive
scope = drive
token = {"access_token":"[redacted]>
team_drive =

Logfile for the command I am using
Generated using the command rclone sync '/home/bob/Documents/demo1/' 'Documents_Rclone:/home/bob/Documents/demo/' --backup-dir '/home/bob/Documents/demo/backup' --log-file=mylogfile.txt

Usage:
  rclone [flags]
  rclone [command]
 
Available Commands:
  about       Get quota information from the remote.
  authorize   Remote authorization.
  backend     Run a backend-specific command.
  bisync      Perform bidirectional synchronization between two paths.
  cat         Concatenates any files and sends them to stdout.
  check       Checks the files in the source and destination match.
  checksum    Checks the files in the source against a SUM file.
  cleanup     Clean up the remote if possible.
  completion  Output completion script for a given shell.
  config      Enter an interactive configuration session.
  copy        Copy files from source to dest, skipping identical files.
  copyto      Copy files from source to dest, skipping identical files.
  copyurl     Copy url content to dest.
  cryptcheck  Cryptcheck checks the integrity of an encrypted remote.
  cryptdecode Cryptdecode returns unencrypted file names.
  dedupe      Interactively find duplicate filenames and delete/rename them.
  delete      Remove the files in path.
  deletefile  Remove a single file from remote.
  gendocs     Output markdown docs for rclone to the directory supplied.
  hashsum     Produces a hashsum file for all the objects in the path.
  help        Show help for rclone commands, flags and backends.
  link        Generate public link to file/folder.
  listremotes List all the remotes in the config file and defined in environment variables.
  ls          List the objects in the path with size and path.
  lsd         List all directories/containers/buckets in the path.
  lsf         List directories and objects in remote:path formatted for parsing.
  lsjson      List directories and objects in the path in JSON format.
  lsl         List the objects in path with modification time, size and path.
  md5sum      Produces an md5sum file for all the objects in the path.
  mkdir       Make the path if it doesn't already exist.
  mount       Mount the remote as file system on a mountpoint.
  move        Move files from source to dest.
  moveto      Move file or directory from source to dest.
  ncdu        Explore a remote with a text based user interface.
  obscure     Obscure password for use in the rclone config file.
  purge       Remove the path and all of its contents.
  rc          Run a command against a running rclone.
  rcat        Copies standard input to file on remote.
  rcd         Run rclone listening to remote control commands only.
  rmdir       Remove the empty directory at path.
  rmdirs      Remove empty directories under the path.
  selfupdate  Update the rclone binary.
  serve       Serve a remote over a protocol.
  settier     Changes storage class/tier of objects in remote.
  sha1sum     Produces an sha1sum file for all the objects in the path.
  size        Prints the total size and number of objects in remote:path.
  sync        Make source and dest identical, modifying destination only.
  test        Run a test command
  touch       Create new file or change file modification time.
  tree        List the contents of the remote in a tree like fashion.
  version     Show the version number.
 
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.
2023/08/31 08:34:36 ERROR : Fatal error received - not attempting retries
2023/08/31 08:34:36 Failed to sync: parameter to --backup-dir has to be on the same remote as destination

As per docs:

The backup directory must not overlap the destination directory without it being excluded by a filter rule.

which in your case means that you have to filter out your backup dir by adding, e.g.:

--exclude "home/bob/Documents/demo/backup/"

flag to your sync command.

Also backup dir has to be explicitly put on the destination remote.

So all together:

rclone sync "/home/bob/Documents/demo1/" "Documents_Rclone:home/bob/Documents/demo/" --backup-dir "Documents_Rclone:home/bob/Documents/demo/backup' --exclude "home/bob/Documents/demo/backup/

thank you very much! I am pretty sure you are right but it will take long to verify. Thank again!