This topic was automatically generated from Slack. You can find the original thread here.
Does anyone know why you get an error: “No access, refresh token, API key or refresh handler callback is set.” on a Google Calendar action?
This topic was automatically generated from Slack. You can find the original thread here.
Does anyone know why you get an error: “No access, refresh token, API key or refresh handler callback is set.” on a Google Calendar action?
Summary
Getting "No access, refresh token, API key or refresh handler callback is set" error when calling /components/configure endpoint for Google Calendar calendarId prop, even though accounts show as healthy: true.
Environment
proj_W7sW9Nmdevelopmentgoogle_calendar-quick-add-eventoa_qkiKb6Accounts Status
Both Google Calendar accounts exist and show as healthy:
bash
curl -X GET 'https://api.pipedream.com/v1/connect/proj_W7sW9Nm/accounts?external_user_id=1' \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'x-pd-environment: development'
Response shows:
apn_jEhD5D8: "healthy": true, "dead": nullapn_GXh0904: "healthy": true, "dead": nullBoth using custom OAuth client oa_qkiKb6 with proper scopes.
Reproduction Steps
1. Call Configure Component Endpoint
bash
curl -X POST 'https://api.pipedream.com/v1/connect/proj_W7sW9Nm/components/configure' \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-H 'x-pd-environment: development' \
-d '{
"external_user_id": "1",
"id": "google_calendar-quick-add-event",
"prop_name": "calendarId",
"configured_props": {
"googleCalendar": "apn_jEhD5D8"
}
}'
2. Error Response
json
{
"error": {
"code": "UserError",
"message": "bad options response for prop: calendarId"
},
"observations": [{
"k": "error",
"err": {
"name": "Error",
"message": "No access, refresh token, API key or refresh handler callback is set.",
"stack": "Error: No access, refresh token, API key or refresh handler callback is set.\n at OAuth2Client.getRequestMetadataAsync (/pipedream/dist/code/.../google-auth-library/build/src/auth/oauth2client.js:346:19)\n at Resource$Calendarlist.list (/pipedream/dist/code/.../calendar/v3.ts:3030:32)"
}
}]
}
What We’ve Verified
Accounts exist with external_id: "1" in development environment
Both accounts show as healthy: true, dead: null
Using correct prop name googleCalendar (camelCase, not google_calendar)
Passing correct external_user_id: "1" in API call
Using correct environment header x-pd-environment: development
Tested both account IDs (apn_jEhD5D8 and apn_GXh0904) - same error for both
Custom OAuth client oa_qkiKb6 configured with proper Google Calendar scopes
Expected Behavior
The endpoint should return a list of calendar options for the calendarId dropdown field.
Actual Behavior
Pipedream’s Google Calendar component code can’t access OAuth credentials, even though the account API shows credentials exist and account is healthy.
Question
Why would accounts show as healthy: true but the component runtime can’t access the OAuth credentials? Is there a different way we need to pass the auth parameter for custom OAuth clients?
Similar to this resolved issue: Why am I encountering different errors for various app requests using both SDK and direct API calls in Pipedream?
But in our case, the external_user_id matches correctly.
, I checked the Pipedream Connect Demo here, and see the configureComponent request are quite different from yours:
{
externalUserId: "demo-5bf3704e-615c-4db9-aac1-3315507f8ef0",
page: 0,
componentId: "google_calendar-quick-add-event",
propName: "calendarId",
configuredProps: {
googleCalendar: {
authProvisionId: "apn_Xeh7VPL"
}
}
}
specifically, the authProvisionId is missing.
This is was it! Thanks !