<@U04S8PLJWMT> <@U093X9BSKQA> Hi everyone :wave: I...
# replication-ask-ai
k
@kapa.ai @Airbyte Hi everyone 👋 I’m facing an issue with Airbyte Cloud while setting up a Google Analytics (GA4) source via API, and I’d really appreciate any help or pointers. 🔍 Context • I’m using a custom OAuth flow to get user consent (with
analytics.readonly
scope). • Using that token, I create a GA4 source via Airbyte API. • The source gets created successfully and also passes the connection test. ❌ Problem When I try to create a connection (GA4 → Postgres): In Airbyte UI → it gets stuck on “Fetching schema” • Via API → it returns a 500 error ✅ What I’ve Verified • OAuth flow is correct (I receive
refresh_token
,
client_id
,
client_secret
) • GA4 API works — I can successfully run:
properties/{property_id}:runReport
User has proper access to the GA4 property • Tried different
property_ids
formats: •
"494091909"
"properties/494091909"
• Tried wider date range (
2024-01-01
) • Issue still persists 🤔 Observation • If I create the same GA4 source using Airbyte UI OAuth, everything works fine • Issue only happens when the source is created via API using my OAuth tokens ❓ Question Is there any difference in how Airbyte Cloud handles: • OAuth credentials internally (UI vs API)? • Schema discovery for GA4 sources? • Required config fields that might not be obvious in API? Or is this a known issue/limitation with the GA4 connector? Any guidance would be super helpful 🙏 Thanks in advance!
k
There is a known issue that closely matches what you're describing. When creating a GA4 source via the Airbyte API using OAuth credentials, a schema validation error can occur due to a mismatch in the OAuth output specification. Root Cause PR #75580 added
oauth_connector_input_specification
with
extract_output: [refresh_token]
to the GA4 connector, but the existing
complete_oauth_output_specification
still declared both
access_token
and
refresh_token
. Since only
refresh_token
is extracted from the Google OAuth response,
access_token
ends up as
null
. When you create a source via the public API with a
secretId
, the platform tries to merge both values into the config, and the null
access_token
causes a 422 schema validation error (or related discovery failures). [fix PR #76190] This explains why: • UI OAuth flow works — the UI handles the OAuth exchange differently and doesn't hit this spec mismatch. • API-created sources fail at schema discovery — the null
access_token
causes validation to fail during the discover/schema-fetch step. [fix PR #76186] Fix This was resolved by removing
access_token
from
complete_oauth_output_specification
in the connector's
manifest.yaml
, leaving only
refresh_token
. The fix was shipped in: • `source-google-analytics-data-api`: version 2.9.30 [fix PR #76190] What You Can Do 1. Check your connector version — if you're on a version older than
2.9.30
, this is likely your issue. 2. When creating the source via API, make sure you are not passing
access_token
in your credentials payload. Only
refresh_token
,
client_id
, and
client_secret
are needed: [GA4 Auth docs]
Copy code
curl -X POST "https://api.airbyte.ai/api/v1/integrations/connectors" \
  -H "Authorization: Bearer <YOUR_BEARER_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_name": "<CUSTOMER_NAME>",
    "connector_type": "Google-Analytics-Data-Api",
    "name": "My Google-Analytics-Data-Api Connector",
    "credentials": {
      "client_id": "<OAuth 2.0 Client ID>",
      "client_secret": "<OAuth 2.0 Client Secret>",
      "refresh_token": "<OAuth 2.0 Refresh Token>"
    },
    "replication_config": {
      "property_ids": "<Your GA4 Property ID>"
    }
  }'
If you're on Airbyte Cloud and the connector version hasn't been updated yet on your end, you may want to reach out to Airbyte support to confirm the fix has been deployed to your environment. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
k
@kapa.ai i removed access token out of my source req and created the source again still facing the same problem while creating the connection help me out with this now!
k
Based on the knowledge sources available, let me help you troubleshoot further. Since removing
access_token
didn't resolve the issue, here are other known causes that match your symptoms (source creates successfully + passes connection test, but schema discovery/connection creation fails): Other Known Issues 1. JSON Schema Validation Mismatch (Service Account vs OAuth) There's a known validation error where the platform checks for
$.auth_type: must be the constant value 'Client'
and reports
client_id
,
client_secret
,
refresh_token
as missing — even when the source was created successfully. This can cause discovery to fail at the orchestration level even though the connector itself exits with code
0
. [schema discovery issue] 2. Platform-Level Issue (Not Connector Bug) In at least one reported case, schema discovery failures with the GA4 connector were determined to be a platform infrastructure issue, not a connector bug, and were routed to the platform team. [GitHub issue] What You Should Try 1. Verify your connector version — make sure you're on
2.9.30
or later, as earlier versions have the OAuth spec mismatch bug. 2. Check your
property_ids
format
— it should be a numeric value only (e.g.,
"494091909"
), not
"properties/494091909"
. [GA4 setup guide] 3. Try with a single property ID — multiple property IDs have been known to cause discovery failures in newer connector versions. Recommended Next Step The knowledge sources don't contain enough detail to fully diagnose your specific 500 error via API. I'd strongly recommend: • Contacting Airbyte Cloud support directly, as this appears to be a platform-level issue in your case. • Sharing the exact API request payload (with credentials redacted) and the full error response you're receiving, so the support team can investigate. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.