<@U04S8PLJWMT> Hello, I have an issue with Google ...
# replication-ask-ai
k
@kapa.ai Hello, I have an issue with Google Ads source connector (version 4.1.6). It keeps failing with a 403 Forbidden error: “Stream customer is not available: Cannot attempt to connect to stream customer - no stream slices were found.” More details in the thread.
k
Based on the knowledge sources available, I can share some relevant context about 403 errors in the Google Ads source connector, though the specific error message you're seeing ("no stream slices were found") isn't explicitly covered. What's Known About 403 Errors in Google Ads Connector There was a known issue in v4.1.4 where syncs would hang indefinitely when encountering 403 errors. The root cause was related to the
GoogleAdsStreamingDecoder
introduced alongside the switch from paginated (
googleAds:search
) to streaming endpoints (
googleAds:searchStream
). The error handler was configured to
IGNORE
403 errors, but the streaming decoder didn't handle error responses properly, causing syncs to hang. [403 hang issue] Possible Causes for Your Issue 1. Permissions/Customer ID: A similar issue was resolved by ensuring the correct
customer_id
with proper permissions is configured. Using a
customer_id
without sufficient permissions can result in no accessible stream slices. [missing streams issue] 2. Login Customer ID: If you're accessing a sub-account under a manager account, you may need to set the
login_customer_id
to the manager account ID. The connector uses this to properly scope API requests. [auth issue] 3. Authentication: Expired or revoked credentials can also cause access failures. Re-authenticating your source connection is recommended as a first step. Suggested Steps • Verify your
customer_id
has the correct permissions for the accounts you're trying to sync. • If using a manager account hierarchy, ensure
login_customer_id
is set to the manager account ID. • Try re-authenticating your credentials via Edit Source → Update Credentials. • If the issue persists on v4.1.6, consider checking whether it's related to the lingering 403 handling behavior from v4.1.4, and consider pinning to a known stable version (e.g., 4.0.2 or 4.1.3) as a temporary workaround. [403 hang issue] The knowledge sources don't contain specific information about the exact error message you're seeing in v4.1.6, so I'd recommend also checking the Airbyte GitHub issues for more targeted help. 👍 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 Context: • Environment: Self-hosted Airbyte (version 2.0.1) • Account Type: Established production account (linked via MCC). • Credentials: Using an MCC-level Developer Token (Approved/Basic Access) and OAuth credentials for a user with Admin rights on the MCC. The Problem (UI Bug): The “Manager Customer ID” (internal key:
login_customer_id
) field is completely missing from the UI configuration screen, even when switching to “Set up manually” or using the “Re-authenticate” flow. Steps Taken to Troubleshoot: 1. Direct API Injection: Used the Airbyte API (via Postman) to manually add the
"login_customer_id"
to the source configuration JSON. 2. Verification: A
GET
request to the Airbyte API confirms that the
login_customer_id
is correctly stored as a string in the database. 3. Persistence of Error: Despite the field being present in the backend, the connector continues to fail with the “no stream slices” error during both the “Check Connection” test and actual sync attempts. 4. Google-Side Validation: * Developer Token is verified as “Approved” with “Basic Access.” All Terms of Service/Data Processing amendments have been accepted in the Google Ads UI. The account is established and has active billing/ad history. Technical Ask: • Why is the
login_customer_id
field not rendering in the UI for this self-hosted version? • Even when the field is injected via API, why does the connector fail to pass this “login-customer-id” header to the Google Ads API, resulting in the 403 “no stream slices” error?
k
The knowledge sources I have available don't contain enough specific information to fully answer both of your questions. Here's what I can confirm from the available evidence: What the Knowledge Sources Support Regarding the
login_customer_id
header:
The connector code in
google_ads.py
does use
login_customer_id
when constructing API clients and making requests. Specifically, it creates separate clients per
login_customer_id
and passes it through to the Google Ads service. [google_ads.py] The
GoogleAdsHttpRequester
in
components.py
also sets the
login-customer-id
header from the stream slice:
Copy code
def get_request_headers(self, ...) -> Mapping[str, Any]:
    return {
        "developer-token": self.config["credentials"]["developer_token"],
        "login-customer-id": stream_slice["parent_slice"]["customer_id"],
    }
[components.py] Regarding the 422 / platform-level issues on self-hosted: There is a known issue on self-hosted Airbyte (abctl/K8s) where the platform throws a
422 Unprocessable Entity
when attempting to update source configuration — even when the connector Python process exits successfully. This was identified as a platform infrastructure issue, not a connector bug. [422 issue] What I Cannot Confirm • Why
login_customer_id
is missing from the UI
in your specific version (2.0.1 self-hosted): The knowledge sources do not contain information about the UI spec rendering for this field or version-specific UI behavior. • Why injecting
login_customer_id
via API still results in the 403 error
: The knowledge sources don't provide a definitive explanation for this specific scenario. Recommended Next Steps 1. File a GitHub issue at airbytehq/airbyte with your specific version details — the UI missing field is likely a spec/UI rendering bug worth reporting. 2. Check the connector spec (
spec.json
) for your installed version to confirm whether
login_customer_id
is defined as a top-level field or nested under
credentials
. 3. For the platform-level 422 behavior on self-hosted, the existing issue [422 issue] suggests routing to the Airbyte platform team, as it's not a connector-side problem. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.