This topic was automatically generated from Slack. You can find the original thread here.
When deploying a Pipedream Connect trigger for Google Analytics of the type google_analytics-page-opened, I’ve started getting this error:
{"error":"observation error","err":null,"observations":[{"k":"hook","ts":1767906968141,"h":"deploy"},{"k":"db.set","ts":1767906968141,"pn":"db","key":"startDate","val":"2025-12-08"},{"k":"db.get","ts":1767906968141,"pn":"db","key":"startDate","ret":"2025-12-08"},{"k":"error","ts":1767906968398,"err":{"name":"Error","message":"\u003c!DOCTYPE html\u003e\n\u003chtml lang=en\u003e\n \u003cmeta charset=utf-8\u003e\n \u003cmeta name=viewport content=\"initial-scale=1, minimum-scale=1, width=device-width\"\u003e\n \u003ctitle\u003eError 404 (Not Found)!!1\u003c/title\u003e\n \u003cstyle\u003e\n **{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}** \u003e body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}\n \u003c/style\u003e\n \u003ca href=//www.google.com/\u003e\u003cspan id=logo aria-label=Google\u003e\u003c/span\u003e\u003c/a\u003e\n \u003cp\u003e\u003cb\u003e404.\u003c/b\u003e \u003cins\u003eThat's an error.\u003c/ins\u003e\n \u003cp\u003eThe requested URL \u003ccode\u003e/v4/reports:batchGet\u003c/code\u003e was not found on this server. \u003cins\u003eThat's all we know.\u003c/ins\u003e\n","stack":"Error: \u003c!DOCTYPE html\u003e\n\u003chtml lang=en\u003e\n \u003cmeta charset=utf-8\u003e\n \u003cmeta name=viewport content=\"initial-scale=1, minimum-scale=1, width=device-width\"\u003e\n \u003ctitle\u003eError 404 (Not Found)!!1\u003c/title\u003e\n \u003cstyle\u003e\n **{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}** \u003e body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}\n \u003c/style\u003e\n \u003ca href=//www.google.com/\u003e\u003cspan id=logo aria-label=Google\u003e\u003c/span\u003e\u003c/a\u003e\n \u003cp\u003e\u003cb\u003e404.\u003c/b\u003e \u003cins\u003eThat's an error.\u003c/ins\u003e\n \u003cp\u003eThe requested URL \u003ccode\u003e/v4/reports:batchGet\u003c/code\u003e was not found on this server. \u003cins\u003eThat's all we know.\u003c/ins\u003e\n\n at Gaxios._request (/tmp/__pdg__/dist/code/28664e1919bbd8d207369a05dfb214498fe0bba66b4fde8f1f05a8539e7fc0a5/node_modules/.pnpm/gaxios@7.1.3/node_modules/gaxios/src/gaxios.ts:213:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async OAuth2Client.requestAsync (/tmp/__pdg__/dist/code/28664e1919bbd8d207369a05dfb214498fe0bba66b4fde8f1f05a8539e7fc0a5/node_modules/.pnpm/google-auth-library@10.5.0/node_modules/google-auth-library/build/src/auth/oauth2client.js:463:20)\n at async createAPIRequestAsync (/tmp/__pdg__/dist/code/28664e1919bbd8d207369a05dfb214498fe0bba66b4fde8f1f05a8539e7fc0a5/node_modules/.pnpm/googleapis-common@8.0.1/node_modules/googleapis-common/build/src/apirequest.js:308:25)\n at async Object.processEvent (file:///tmp/__pdg__/dist/code/28664e1919bbd8d207369a05dfb214498fe0bba66b4fde8f1f05a8539e7fc0a5/code/sources/page-opened/page-opened.mjs:78:32)\n at async Object.deploy (file:///tmp/__pdg__/dist/code/28664e1919bbd8d207369a05dfb214498fe0bba66b4fde8f1f05a8539e7fc0a5/code/sources/page-opened/page-opened.mjs:32:7)\n at async callComponentHooks (/var/task/node_modules/@lambda-v2/component-runtime/src/callComponentHooks.js:31:7)\n at async /var/task/node_modules/@lambda-v2/component-runtime/src/deployedComponentMain.js:73:7\n at async captureObservations (/var/task/node_modules/@lambda-v2/component-runtime/src/captureObservations.js:28:5)\n at async deployedComponentMain (/var/task/node_modules/@lambda-v2/component-runtime/src/deployedComponentMain.js:46:20)"}}]}
I asked the Pipedream documentation AI what that means. It gave me the following response:
This error is not a Pipedream issue — it’s coming from Google’s API.
What’s Happening
The trigger is trying to call Google Analytics API endpoint/v4/reports:batchGet, but Google is returning a 404 Not Found error. This means:
- The API endpoint doesn’t exist — Google Analytics has migrated from Universal Analytics (UA) to Google Analytics 4 (GA4). The
/v4/reports:batchGetendpoint was part of the older Universal Analytics Reporting API, which Google has deprecated and shut down.- Universal Analytics was sunset — Google stopped processing UA data in July 2023, and the APIs have been discontinued.
Solution
You need to use a trigger/component that works with Google Analytics 4 (GA4) instead, which uses the Google Analytics Data API (not the Reporting API v4).
Check if there’s an updated Google Analytics 4 component available in Pipedream, or update your integration to use the GA4 Data API endpoints.