Google team drive config 404's when listing teamdrives with new service account

What is the problem you are having with rclone?

Can not configure google teamdrive remote - remote config ends with "Error: listing Team Drives failed: googleapi: Error 404: File not found: ., notFound"
Have tried createing a new cloud project / api key / service account / domain wide delegation.

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

rclone v1.60.1

  • os/version: debian 11.5 (64 bit)
  • os/kernel: 5.10.0-19-amd64 (x86_64)
  • os/type: linux
  • os/arch: amd64
  • go/version: go1.19.3
  • go/linking: static
  • go/tags: none
Yes

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

18 / Google Drive

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

rclone config

The rclone config contents with secrets removed.

cat ~/.config/rclone/rclone.conf
[canverse - teamdrive - imgconvert]
type = drive
scope = drive

A log from the command with the -vv flag

$ rclone config -vv
2022/12/12 17:33:28 DEBUG : rclone: Version "v1.60.1" starting with parameters ["rclone" "config" "-vv"]
2022/12/12 17:33:28 DEBUG : Using config file from "~/.config/rclone/rclone.conf"
Current remotes:

Name                 Type
====                 ====
canverse - teamdrive - imgconvert 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 > canverse - teamdrive - imgconvert
remote> 1

Editing existing "canverse - teamdrive - imgconvert" remote with options:
- type: drive
- scope: drive

2022/12/12 17:33:36 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all", result=""
2022/12/12 17:33:36 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all-set,0,false Option: OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:33:36 DEBUG : canverse - teamdrive - imgconvert: 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/12/12 17:33:47 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all-set,0,false", result=""
2022/12/12 17:33:47 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,1,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:33:47 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,1,false", result=""
2022/12/12 17:33:47 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all-set,1,false Option: OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:33:47 DEBUG : canverse - teamdrive - imgconvert: 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/12/12 17:33:49 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all-set,1,false", result=""
2022/12/12 17:33:49 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,2,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:33:49 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,2,false", result=""
2022/12/12 17:33:49 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,3,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:33:49 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,3,false", result=""
2022/12/12 17:33:49 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,4,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:33:49 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,4,false", result=""
2022/12/12 17:33:49 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,5,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:33:49 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,5,false", result=""
2022/12/12 17:33:49 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all-set,5,false Option:drive OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:33:49 DEBUG : canverse - teamdrive - imgconvert: 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).
 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> 1

2022/12/12 17:33:52 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all-set,5,false", result="drive"
2022/12/12 17:33:52 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,6,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:33:52 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,6,false", result=""
2022/12/12 17:33:52 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,7,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:33:52 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,7,false", result=""
2022/12/12 17:33:52 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all-set,7,false Option: OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:33:52 DEBUG : canverse - teamdrive - imgconvert: 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> /path/to/my/service.json

2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all-set,7,false", result="/home/gorby/working/rcloneWorkers/serviceaccns/canverse.json"
2022/12/12 17:34:29 DEBUG : Saving config "service_account_file" in section "canverse - teamdrive - imgconvert" of the config file
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,8,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,8,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,9,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,9,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,10,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,10,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,11,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,11,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,12,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,12,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,13,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,13,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,14,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,14,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,15,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,15,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,16,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,16,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,17,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,17,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,18,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,18,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,19,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,19,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,20,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,20,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,21,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,21,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,22,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,22,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,23,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,23,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,24,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,24,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,25,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,25,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,26,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,26,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,27,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,27,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,28,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,28,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,29,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,29,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,30,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,30,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,31,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,31,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,32,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,32,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,33,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,33,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,34,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,34,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,35,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,35,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,36,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,36,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,37,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,37,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,38,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,38,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,39,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,39,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,40,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,40,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,41,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,41,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,42,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,42,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all,43,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all,43,false", result=""
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*all-advanced Option:false OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:29 DEBUG : canverse - teamdrive - imgconvert: config: reading config parameter "config_fs_advanced"
Edit advanced config?
y) Yes
n) No (default)
y/n> n

2022/12/12 17:34:36 DEBUG : canverse - teamdrive - imgconvert: config in: state="*all-advanced", result="false"
2022/12/12 17:34:36 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:*postconfig Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:36 DEBUG : canverse - teamdrive - imgconvert: config in: state="*postconfig", result=""
2022/12/12 17:34:36 DEBUG : canverse - teamdrive - imgconvert: config in: state="", result=""
2022/12/12 17:34:36 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:teamdrive Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:36 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:teamdrive Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:36 DEBUG : canverse - teamdrive - imgconvert: config in: state="teamdrive", result=""
2022/12/12 17:34:36 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:teamdrive_ok Option:false OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:36 DEBUG : canverse - teamdrive - imgconvert: config: reading config parameter "config_change_team_drive"
Configure this as a Shared Drive (Team Drive)?

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

2022/12/12 17:34:39 DEBUG : canverse - teamdrive - imgconvert: config in: state="teamdrive_ok", result="true"
2022/12/12 17:34:39 DEBUG : canverse - teamdrive - imgconvert: config out: out=&{State:teamdrive_config Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2022/12/12 17:34:39 DEBUG : canverse - teamdrive - imgconvert: config in: state="teamdrive_config", result=""
2022/12/12 17:34:39 DEBUG : canverse - teamdrive - imgconvert: config out: out=<nil>, err=listing Team Drives failed: googleapi: Error 404: File not found: ., notFound
Error: listing Team Drives failed: googleapi: Error 404: File not found: ., notFound
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.
  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.
  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

Additional help topics:
  rclone config edit       Enter an interactive configuration session.

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.

2022/12/12 17:34:39 Fatal error: listing Team Drives failed: googleapi: Error 404: File not found: ., notFound

This appears to only be a problem with shared drives. My service account works fine impersonateing other users in different remotes.

hello and weclome to the forum,

whatever rclone commands you are running, add -vv for debug ouput and post the full output

Thanks, I have done so.
Also going to try createing my own client ID as per here, although ive never had to do that with my other drive remotes.

might be easier to re-create the remotes, instead of editing them.

here are two examples of using service accounts.

[gdrivesa]
type = drive
scope = drive
service_account_file = /home/user/rclone/it.org.json

[gdrivesac1]
type = drive
scope = drive
service_account_credentials = {"type": "service_account", "project_id": "",   "private_key_id": "",   "private_key": "",   "client_email": "",   "client_id": "",   "auth_uri": "https://accounts.google.com/o/oauth2/auth",   "token_uri": "https://oauth2.googleapis.com/token",   "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",   "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/iam.gserviceaccount.com" }

and this is an example of an on-the-fly remote, not using the rclone config file.
rclone lsd "gdrive,service_account_file='/home/user/rclone/it.org.json':"

I have repeated the process createing a new remote, the same result occours unfortunately.
I have manually set the rest of the details for this remote from copying a previous one. I then got the google teamdrive ID from google WS admin console.

This seems to be a problem / bug with the teamdrive functionality. Or should I not be useing a service account for team / shared drives perhaps?

If I create the config manually but remove the shared drive ID my service account file works perfectly and I can use --drive-impersonate to list the drives of all our GWS users.
The moment I put team_drive = (shared drive ID) in the config file I get the same error as during the remote config.

rclone lsd imgconvert:/
2022/12/12 18:05:53 ERROR : : error listing: failed to get Shared Drive info: googleapi: Error 404: Shared drive not found: (shared drive ID), notFound
2022/12/12 18:05:53 Failed to lsd with 2 errors: last error was: failed to get Shared Drive info: googleapi: Error 404: Shared drive not found: (redacted), notFound

404s are generally permission errors.

Did you add the service account to the team drive?

I did not!
How can I go about doing that?

You'd find your service account email/long name in the credentials where you created it and just add it like you would a user for the shared drive.

I don't use Google so I can't see the exact screens.

Thanks man,
I never used the service account email address's before.
I got it from here: https://console.cloud.google.com/iam-admin/serviceaccounts?
Added it to the drive, then bingo.

Thanks for the suggestion / help.

I should add, though (for other people reading) that is a little different from "a user for the shared drive." - normally you put your google WS users in those boxes, not emails associated with google cloud projects / service accounts.

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.