Google Workspace APIs breaking changes, updated weekly
Every verified Google Workspace APIs trap in Footgun: changes and behaviors that break code or give wrong results, newest first. Each one has the error you see, the fix, and the date it was last checked. The list updates when the weekly check adds or retires a trap. For the full cause and sources, open the trap, or see all Google Workspace APIs traps.
fg-0019· added 2026-10-14· last checked 2026-10-14
Calendar GET on a deleted event returns 200 with status cancelled, not 404
Symptom
200 OK with "status": "cancelled" for an event removed from the calendar
Fix
Check body.status == "cancelled" when testing whether an event still exists, and treat 410 on delete as success.
fg-0018· added 2026-10-08· last checked 2026-10-08
Appointment schedule bookers are auto-marked accepted, so RSVP is not a confirmation
Symptom
Every booked attendee shows responseStatus accepted
Fix
Collect confirmation another way, for example a reply to a reminder message.
fg-0026· added 2026-10-06· last checked 2026-10-06
OAuth sign-in succeeds but the app reports 'Missing scope gmail.send'
Symptom
Missing scope gmail.send
Fix
Repeat the sign-in and tick every scope checkbox on the consent screen. In your own apps, check the granted scopes in the token response and explain what is missing.
fg-0023· added 2026-09-04· last checked 2026-09-04
Google Drive 'Add shortcut' into another account's folder fails silently
Symptom
Dialog accepts, spinner runs, nothing is created
Fix
Do the work from the account that owns the destination, after the source is shared with it. Verify sharing with the permissions API rather than the share dialog.
fg-0021· added 2026-08-20· last checked 2026-10-30
Changing Gmail's forwarding address silently stops mail to the old one
Symptom
A person who used to receive forwarded copies stops getting them with no notice
Fix
Keep the main forward for one recipient and add a filter with a Forward to action for each additional recipient. The address must already be a verified forwarding address.
fg-0022· added 2026-08-20· last checked 2026-08-20
Gmail forward filter seems broken when tested by emailing yourself
Symptom
A test email to the forwarding mailbox never arrives at the destination
Fix
Test with a message sent from outside the destination account.
fg-0017· added 2026-08-11· last checked 2026-08-11
App with the drive.file scope cannot see a Sheet created by hand
Symptom
404 File not found for a file that exists
Fix
Have the app's setup script create the Sheets and folders it needs.
fg-0024· added 2026-08-11· last checked 2026-08-11
Google refresh token dies every 7 days with invalid_grant
Symptom
invalid_grant
Fix
Publish the consent screen to Production. For a private app this shows an unverified app warning once at sign-in, which is acceptable. If invalid_grant appears on a published app, the token was revoked; mint a new one.
fg-0030· added 2026-08-11· last checked 2026-08-11
Service account cannot create a Google Sheet or upload a file: 403 storageQuotaExceeded
Symptom
403 The caller does not have permission (Sheets API create)
Fix
Use an OAuth refresh token for a real user whenever an agent must create files. Keep the service account for pure value writes into existing Sheets.
fg-0020· added 2026-07-17· last checked 2026-07-17
Calendar PATCH on attendees resets everyone's RSVP to needsAction
Symptom
Attendees who had accepted show as awaiting response after the update
Fix
Read the event first and send every existing attendee back with its responseStatus, plus the new one.
fg-0025· added 2026-07-05· last checked 2026-07-05
googleapis JWT client built with positional arguments is silently unauthenticated
Symptom
401 or 403 on every call from a service account
Fix
Pass an options object.
fg-0027· added 2026-06-29· last checked 2026-06-29
Old token helper scripts using the out-of-band OAuth flow no longer work
Symptom
Sign-in fails for redirect_uri urn:ietf:wg:oauth:2.0:oob
Fix
Use a loopback redirect. Desktop OAuth clients accept http://localhost on any port. Request offline access and force the consent prompt so a refresh token is returned.
Have your agent check Google Workspace APIs changes before it codes