<@U04S8PLJWMT> setting up a Goggle Analytics (GA4)...
# replication-ask-ai
d
@kapa.ai setting up a Goggle Analytics (GA4) source using Service Account, and i'm able to test and save, but when i got to setup a connection, i get the following (it looks like it's trying to go through the OAuth workflow):
Copy code
~~~~~~~~~~~~~~~~~~~~~^^                                                                                                                                      ││   File "/usr/local/lib/python3.13/site-packages/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py", line 109, in get_access_token                                                                       ││     self.refresh_and_set_access_token()                                                                                                                                                                                       ││     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^                                                                                                                                                                                       ││   File "/usr/local/lib/python3.13/site-packages/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py", line 120, in refresh_and_set_access_token                                                           ││     token, expires_in = self.refresh_access_token()                                                                                                                                                                           ││                         ~~~~~~~~~~~~~~~~~~~~~~~~~^^                                                                                                                                                                           ││   File "/usr/local/lib/python3.13/site-packages/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py", line 211, in refresh_access_token                                                                   ││     response_json = self._make_handled_request()                                                                                                                                                                              ││   File "/usr/local/lib/python3.13/site-packages/backoff/_sync.py", line 105, in retry                                                                                                                                         ││     ret = target(*args, **kwargs)                                                                                                                                                                                             ││   File "/usr/local/lib/python3.13/site-packages/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py", line 343, in _make_handled_request                                                                  ││     raise AirbyteTracedException(                                                                                                                                                                                             ││     ...<3 lines>...                                                                                                                                                                                                           ││     ) from e                                                                                                                                                                                                                  ││ airbyte_cdk.utils.traced_exception.AirbyteTracedException: OAuth access token refresh request failed.
k
This looks like a known issue where the GA4 connector's
SelectiveAuthenticator
fails to correctly identify the auth type when
auth_type
is missing from the credentials config, causing it to fall through to the OAuth flow even when you've configured a Service Account. Root Cause The GA4 connector dispatches to different authenticators based on
credentials.auth_type
. This field is auto-populated by the UI but is not required. In some cases (especially when creating connections via API or certain flows),
auth_type
may be omitted, causing the connector to misroute to the OAuth authenticator instead of the Service Account (JWT) authenticator. [OAuth fix PR] Things to Try 1. Re-save your source credentials. Go to your GA4 source → Settings → re-enter your Service Account JSON key and save. This can force the
auth_type
field to be correctly set in the stored config. 2. Verify your Service Account JSON is valid and complete. Make sure the JSON key file contains all required fields (
client_email
,
private_key
,
private_key_id
, etc.) and that the private key is properly formatted (with correct
\n
line breaks — do not escape them as
\\n
). [token error issue] 3. Ensure the Service Account has GA4 property access. Creating a service account and downloading the JSON key does not automatically grant it access to your GA4 property. You must: ◦ In Google Analytics, go to Admin → Property access management ◦ Add the service account email and grant at least the Viewer role [GA4 setup docs] 1. Ensure the required APIs are enabled in your Google Cloud project: ◦ Google Analytics Reporting API ◦ Google Analytics API ◦ Google Analytics Data API [GA4 setup docs] 1. Check your connector version. A fix for the
auth_type
inference issue was submitted in PR #77618 targeting version
2.9.36
. If you're on an older version (e.g.,
2.9.35
or earlier), upgrading the connector may resolve the issue. [OAuth fix PR] The fact that the source test passes but the connection setup fails is consistent with the
auth_type
inference bug — the connection creation step may be hitting a different code path where
auth_type
is missing from the config. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.