Then: find-actionable-events fails with 404 on every single background processing cycle when we invoke GET events for calendar as calendar no longer exists.
{
"name": "Error",
"location": "/node_modules/gaxios/src/gaxios.ts:211",
"message": "Not Found",
"stack": "Error: Not Found\n at WD._request (/node_modules/gaxios/src/gaxios.ts:211:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n at async r.requestAsync (/node_modules/google-auth-library/build/src/auth/oauth2client.js:463:20)\n at async v2e (/node_modules/googleapis-common/build/src/apirequest.js:308:25)\n at async ES (/src/services/observability/metrics.ts:25:20)\n at async Uv.processRecord (/node_modules/@aws-lambda-powertools/batch/lib/esm/BatchProcessor.js:171:28)\n at async Promise.all (index 0)\n at async Uv.process (/node_modules/@aws-lambda-powertools/batch/lib/esm/BasePartialProcessor.js:75:15)\n at async fJ (/node_modules/@aws-lambda-powertools/batch/lib/esm/processPartialResponse.js:73:5)\n at async o0e (/node_modules/@middy/core/index.js:215:23)",
"cause": {
"message": "Not Found",
"code": 404,
"status": "Not Found",
"errors": [
{
"domain": "global",
"reason": "notFound",
"message": "Not Found"
}
]
},
"config": {
"url": "https://www.googleapis.com/calendar/v3/calendars/b522f10b11034db056d97087b918ec004c98c553c26b958f6200fbaedd806a87%40group.calendar.google.com/events?timeMax=2025-10-03T18%3A29%3A59.999Z&timeMin=2025-10-03T18%3A00%3A00.000Z&timeZone=UTC",
"method": "GET",
"apiVersion": "",
"userAgentDirectives": [
{
"product": "google-api-nodejs-client",
"version": "8.0.0",
"comment": "gzip"
}
],
"headers": {},
"params": {
"timeMax": "2025-10-03T18:29:59.999Z",
"timeMin": "2025-10-03T18:00:00.000Z",
"timeZone": "UTC"
},
"retry": true,
"responseType": "unknown",
"retryConfig": {
"currentRetryAttempt": 0,
"retry": 3,
"httpMethodsToRetry": [
"GET",
"HEAD",
"PUT",
"OPTIONS",
"DELETE"
],
"noResponseRetries": 2,
"retryDelayMultiplier": 2,
"timeOfFirstRequest": 1759428056398,
"totalTimeout": 9007199254740991,
"maxRetryDelay": 9007199254740991,
"statusCodesToRetry": [
[
100,
199
],
[
408,
408
],
[
429,
429
],
[
500,
599
]
]
}
},
"response": {
"size": 0,
"data": {
"error": {
"code": 404,
"message": "Not Found"
}
},
"config": {
"url": "https://www.googleapis.com/calendar/v3/calendars/b522f10b11034db056d97087b918ec004c98c553c26b958f6200fbaedd806a87%40group.calendar.google.com/events?timeMax=2025-10-03T18%3A29%3A59.999Z&timeMin=2025-10-03T18%3A00%3A00.000Z&timeZone=UTC",
"method": "GET",
"apiVersion": "",
"userAgentDirectives": [
{
"product": "google-api-nodejs-client",
"version": "8.0.0",
"comment": "gzip"
}
],
"params": {
"timeMax": "2025-10-03T18:29:59.999Z",
"timeMin": "2025-10-03T18:00:00.000Z",
"timeZone": "UTC"
},
"retry": true,
"responseType": "unknown"
}
},
"code": 404,
"status": 404
}
Reproduction steps:
Then: find-actionable-events fails with 404 on every single background processing cycle when we invoke GET events for calendar as calendar no longer exists.
Google response when this happens:
{ "name": "Error", "location": "/node_modules/gaxios/src/gaxios.ts:211", "message": "Not Found", "stack": "Error: Not Found\n at WD._request (/node_modules/gaxios/src/gaxios.ts:211:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n at async r.requestAsync (/node_modules/google-auth-library/build/src/auth/oauth2client.js:463:20)\n at async v2e (/node_modules/googleapis-common/build/src/apirequest.js:308:25)\n at async ES (/src/services/observability/metrics.ts:25:20)\n at async Uv.processRecord (/node_modules/@aws-lambda-powertools/batch/lib/esm/BatchProcessor.js:171:28)\n at async Promise.all (index 0)\n at async Uv.process (/node_modules/@aws-lambda-powertools/batch/lib/esm/BasePartialProcessor.js:75:15)\n at async fJ (/node_modules/@aws-lambda-powertools/batch/lib/esm/processPartialResponse.js:73:5)\n at async o0e (/node_modules/@middy/core/index.js:215:23)", "cause": { "message": "Not Found", "code": 404, "status": "Not Found", "errors": [ { "domain": "global", "reason": "notFound", "message": "Not Found" } ] }, "config": { "url": "https://www.googleapis.com/calendar/v3/calendars/b522f10b11034db056d97087b918ec004c98c553c26b958f6200fbaedd806a87%40group.calendar.google.com/events?timeMax=2025-10-03T18%3A29%3A59.999Z&timeMin=2025-10-03T18%3A00%3A00.000Z&timeZone=UTC", "method": "GET", "apiVersion": "", "userAgentDirectives": [ { "product": "google-api-nodejs-client", "version": "8.0.0", "comment": "gzip" } ], "headers": {}, "params": { "timeMax": "2025-10-03T18:29:59.999Z", "timeMin": "2025-10-03T18:00:00.000Z", "timeZone": "UTC" }, "retry": true, "responseType": "unknown", "retryConfig": { "currentRetryAttempt": 0, "retry": 3, "httpMethodsToRetry": [ "GET", "HEAD", "PUT", "OPTIONS", "DELETE" ], "noResponseRetries": 2, "retryDelayMultiplier": 2, "timeOfFirstRequest": 1759428056398, "totalTimeout": 9007199254740991, "maxRetryDelay": 9007199254740991, "statusCodesToRetry": [ [ 100, 199 ], [ 408, 408 ], [ 429, 429 ], [ 500, 599 ] ] } }, "response": { "size": 0, "data": { "error": { "code": 404, "message": "Not Found" } }, "config": { "url": "https://www.googleapis.com/calendar/v3/calendars/b522f10b11034db056d97087b918ec004c98c553c26b958f6200fbaedd806a87%40group.calendar.google.com/events?timeMax=2025-10-03T18%3A29%3A59.999Z&timeMin=2025-10-03T18%3A00%3A00.000Z&timeZone=UTC", "method": "GET", "apiVersion": "", "userAgentDirectives": [ { "product": "google-api-nodejs-client", "version": "8.0.0", "comment": "gzip" } ], "params": { "timeMax": "2025-10-03T18:29:59.999Z", "timeMin": "2025-10-03T18:00:00.000Z", "timeZone": "UTC" }, "retry": true, "responseType": "unknown" } }, "code": 404, "status": 404 }