packages/googledrive/webhooks/changes.ts fetches the changes feed once with pageSize: 100 and never follows nextPageToken.
ChangeList already has nextPageToken / newStartPageToken. Neither is used on the webhook path.
If more than one page of changes is pending, later events are dropped. Worse with the recent-changes filter: page 1 can look "old", get filtered empty, and fresh changes on later pages never load.
Fix
Loop changes.list while nextPageToken is present (cap pages if needed). Optionally persist newStartPageToken for the next watch cycle.
Check
pnpm --filter @corsair-dev/googledrive test
packages/googledrive/webhooks/changes.tsfetches the changes feed once withpageSize: 100and never followsnextPageToken.ChangeListalready hasnextPageToken/newStartPageToken. Neither is used on the webhook path.If more than one page of changes is pending, later events are dropped. Worse with the recent-changes filter: page 1 can look "old", get filtered empty, and fresh changes on later pages never load.
Fix
Loop
changes.listwhilenextPageTokenis present (cap pages if needed). Optionally persistnewStartPageTokenfor the next watch cycle.Check
pnpm --filter @corsair-dev/googledrive test