Ross, I don't know why cros_ou is failing.
My comments as I was testing.
Does printing all devices work fine?
Then perhaps do that and use csv_output_row_filter to only include those in the /WISD Devices/Student Devices/Tech Storage ou.
I don't know how "API expensive" the cros_ou query is. I thought basic queries were cheap.
It worked like a charm for me, and I even used cros_ou_and_children since my devices live in sub-OUs of my /Students OU.
Perhaps you had other processes running simultaneously, and you ran out of quota. Then just running the command later or the next day should be fine.
HAH! I too was affected.
The resulting Sheet only got the first 3731 devices of 4536 found.
So I tried an alternative syntax to accomplish the same thing.
$ gam redirect csv - multiprocess todrive tdupdatesheet tdfileid sheetIDHere tdsheet Devices tdtitle "2022 Summer Device Check Sheet (Responses)" tdsheet "Tech Storage Devices" tdclearfilter true cros_ou_and_children "/_Chromebooks" print cros fields ou asset serialnumber location osversion status
Same result.
Again, but removing the tdclearfilter true command.
Same result. Fails randomly somewhere after 3700 devices.
Trying my initial idea with the csv_output_row_filter.
gam config csv_output_row_filter "orgUnitPath:regex:_Chromebooks" redirect csv - multiprocess todrive
tdupdatesheet tdfileid sheetIDHere tdsheet Devices tdtitle "2022 Summer Device Check Sheet (Responses)" tdsheet "Tech Storage Devices" tdclearfilter true print cros fields ou asset serialnumber location osversion status
WORKED LIKE A CHARM!
Using csv_output_row_filter doesn't use any API query, and instead does the filtering locally on your device, not restricted by any API quota.