I am using Tiktok Marketing Source and handled the...
# airbyte-agents-ask-ai
k
I am using Tiktok Marketing Source and handled the initial full data yesterday and pulled data till July 7. But when i try to run the connections for delta as incremental, no data is being fetched.
k
There are several common reasons why incremental syncs on the TikTok Marketing connector might return no data. Here's what to check: 1. Attribution Window / Data Latency The TikTok Reporting API has approximately 11 hours of data latency. If you pulled data through July 7 and are running an incremental sync shortly after, the data may not yet be available. [TikTok Marketing Docs] Make sure your Attribution Window is set to at least 3 days (the default) to ensure the connector looks back far enough to capture delayed metrics. [TikTok Marketing Docs] 2. Smart+ Ads Missing modify_time If you are syncing the
ads
stream
, be aware of a known issue: Smart+ Ad records returned by the TikTok API without a
modify_time
value are silently dropped
by the connector. The sync completes successfully with no errors, but those records are excluded. This has been present since connector v4.8.1 and is still present in v5.1.2. [GitHub Discussion] 3. Connection State After Migration to v4.0.0 If you recently upgraded to connector version 4.0.0+, the migration from Python CDK to declarative low-code CDK constitutes a breaking change in how incremental state is managed. Many streams (e.g.,
ads
,
campaigns
,
ad_groups
, and all report streams) are affected. If the state was not properly cleared after the upgrade, incremental syncs may behave unexpectedly. [Migration Guide] To resolve this, you may need to clear data for the affected streams: 1. Go to Connections → select your connection. 2. Go to the Status tab. 3. Click the three dots next to the affected stream and select Clear Data. 4. Trigger a new sync. 4. General Incremental Sync Troubleshooting • Check the Connection State (under the connection's Settings tab) to confirm a cursor value was saved from the previous sync. If the state is empty, the connector won't know where to resume from and may behave unexpectedly. [Incremental Sync Docs] • Ensure your Start date is set correctly and is not in the future. • If you see TikTok API error 40067, reduce the Daily Reports Date Step setting to 7 or 1. [TikTok Marketing Docs] If none of the above resolves the issue, consider opening a GitHub issue or reaching out via the Airbyte Community Slack for further assistance. šŸ‘ 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 am using Attribution Window as 7 as we are interested in attribution window 7-day click and 1 day view. I ran the initial load yesterday evening around 6 IST and now running the incremental job from 3 UTC but no records fetched even after multiple runs
k
The knowledge sources do not contain enough specific information to fully diagnose your exact scenario, but based on what is available, here are the most likely explanations: Possible Reasons for No Records 1. Data Latency on TikTok's Side The TikTok Reporting API has approximately 11 hours of data latency. [TikTok Marketing Docs] • Your initial load ran at ~6 PM IST (12:30 UTC) on July 7. • Your incremental run is at 3 UTC on July 8 — that's only about 14.5 hours later. • With an attribution window of 7 days, the connector may be looking back at a date range where TikTok's API hasn't fully settled the data yet, resulting in no new delta records being returned. 2. Cursor State May Not Have Advanced Far Enough If the cursor saved from your initial load points to July 7, and TikTok's API hasn't yet made July 7/8 data fully available due to latency, the incremental query may return empty results — which is not an error, just no new data yet. Check your Connection State under the connection's Settings tab to confirm: • A cursor value was actually saved from the initial sync. • The cursor date aligns with what you expect (end of July 7). 3. Attribution Window Interaction With a 7-day attribution window, the connector looks back 7 days from the current date for each sync. This is correct for your use case, but it also means the connector expects data within that window to have changed. If TikTok hasn't updated metrics for that window yet (due to the ~11-hour latency), no records will be returned. Recommendation I'm sorry, but the knowledge sources don't contain detailed enough information about how the TikTok Marketing connector specifically handles the interaction between attribution windows and incremental cursor advancement to give a more precise answer. As a next step, I'd suggest: • Wait a few more hours (until TikTok's data latency window has fully passed) and retry. • Check the connection logs for any warnings about missing
modify_time
fields, which could silently drop records. [GitHub Discussion] • If the issue persists, consider reaching out via Airbyte Community Slack or opening a support ticket with your connection logs for deeper investigation. šŸ‘ 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 this is the connection state [ { "streamDescriptor": { "name": "ads" }, "streamState": { "state": { "modify_time": "2026-07-03 133042Z" }, "states": [ { "cursor": { "modify_time": "2026-07-03 133042Z" }, "partition": { "parent_slice": {}, "advertiser_id": "7580116706446655505" } }, { "cursor": { "modify_time": "2025-12-01 000000Z" }, "partition": { "parent_slice": {}, "advertiser_id": "7621206560748208145" } } ], "lookback_window": 6, "use_global_cursor": false } }, { "streamDescriptor": { "name": "campaigns" }, "streamState": { "state": { "modify_time": "2026-07-06 093442Z" }, "states": [ { "cursor": { "modify_time": "2026-07-06 093442Z" }, "partition": { "parent_slice": {}, "advertiser_id": "7580116706446655505" } }, { "cursor": { "modify_time": "2025-12-01 000000Z" }, "partition": { "parent_slice": {}, "advertiser_id": "7621206560748208145" } } ], "lookback_window": 2, "use_global_cursor": false } }, { "streamDescriptor": { "name": "ads_reports_by_country_daily" }, "streamState": { "state": { "stat_time_day": "2026-07-07" }, "states": [ { "cursor": { "stat_time_day": "2026-07-07" }, "partition": { "parent_slice": {}, "advertiser_id": "7580116706446655505" } }, { "cursor": { "stat_time_day": "2025-12-01" }, "partition": { "parent_slice": {}, "advertiser_id": "7621206560748208145" } } ], "lookback_window": 69, "use_global_cursor": false } }, { "streamDescriptor": { "name": "ad_groups" }, "streamState": { "state": { "modify_time": "2026-07-06 093442Z" }, "states": [ { "cursor": { "modify_time": "2026-07-06 093442Z" }, "partition": { "parent_slice": {}, "advertiser_id": "7580116706446655505" } }, { "cursor": { "modify_time": "2025-12-01 000000Z" }, "partition": { "parent_slice": {}, "advertiser_id": "7621206560748208145" } } ], "lookback_window": 3, "use_global_cursor": false } } ]
k
Looking at your connection state, here are some observations: Connection State Analysis 1. Cursor Values Look Valid The state is properly saved, so the incremental sync mechanism is working. The connector knows where to resume from for each advertiser partition. 2. Key Issue: Second Advertiser Cursor is Far Behind For both advertisers across all streams, the second advertiser (
7621206560748208145
) has a cursor stuck at
2025-12-01
, which is very old. This means: • The connector will try to sync ~7 months of data for that advertiser on every incremental run. • If TikTok's API returns no records for that range (or the data is too large), it could cause issues. 3. ads Stream Cursor is July 3, Not July 7 For the
ads
stream, the cursor for your primary advertiser (
7580116706446655505
) is at
2026-07-03 13:30:42Z
— not July 7. This means: • The connector should be fetching ads data from July 3 onwards. • If no ads were modified between July 3 and now, no records will be returned — because the
ads
stream uses
modify_time
as its cursor, not a creation date. 4. Smart+ Ads Silently Dropped If any of your ads are Smart+ (Smart Performance) ads, they may be missing a
modify_time
field and are silently dropped by the connector without any error or warning. This is a known bug present since v4.8.1. [GitHub Discussion] Recommendations 1. Check if any ads were actually modified after July 3 in your TikTok account. If no ads were edited/updated, zero records from the
ads
stream is expected behavior. 2. For the second advertiser (
7621206560748208145
) with the December 2025 cursor — consider clearing data for that partition and resyncing, as it may be causing the sync to behave unexpectedly. 3. Check your sync logs for warnings like: Could not find cursor field modify_time in recordThis would confirm Smart+ ads are being silently dropped. [GitHub Issue] 4. The knowledge sources do not contain enough detail about how the
lookback_window
values (6, 2, 3, 69 days across your streams) interact with your 7-day attribution window setting to give a definitive answer on that aspect. I'd recommend reaching out via Airbyte Community Slack or opening a support ticket with your sync logs for deeper investigation. šŸ‘ 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 But why the reports stream is not fetched or available? how to integrate smart plus ad details as well?
k
Reports Stream & Smart+ Ads Why Reports Stream May Not Be Fetching Data Looking at your connection state, the
ads_reports_by_country_daily
stream has: • Primary advertiser cursor at
2026-07-07
(up to date) • Second advertiser cursor stuck at
2025-12-01
• A very large
lookback_window
of 69 days The knowledge sources do not contain enough detail to fully explain why your reports streams are returning no data in your specific case. However, a few things to note: • The TikTok Reporting API has approximately 11 hours of data latency, so data for July 7–8 may not be fully available yet. [TikTok Marketing Docs] • Report streams use date-based cursors (e.g.,
stat_time_day
) rather than
modify_time
, so they behave differently from the
ads
stream. If the cursor is already at July 7 and TikTok hasn't finalized that day's data yet, no new records will be returned. • With a 7-day attribution window, the connector should be looking back 7 days on each sync to capture updated metrics — but if TikTok's API hasn't settled those numbers yet, the result will be empty. How to Get Smart+ Ad Details This is a known bug in the TikTok Marketing connector. Smart+ ads are silently dropped from the
ads
stream because they are returned by the TikTok API without a
modify_time
field
, and the connector's
RecordFilter
excludes any record missing that field. [GitHub Discussion] A fix has been proposed in PR #81416 which: [GitHub PR] • Removes the
RecordFilter
from the
ads
stream • Makes
modify_time
nullable in the schema • Bumps the connector version to 5.2.0 Until the fix is released, your options are limited: 1. Check your connector version — if you are on v5.1.2 or earlier, Smart+ ads will be silently dropped with no warning. 2. Watch for the v5.2.0 release of the TikTok Marketing connector, which should include the fix. 3. Check your sync logs for repeated warnings like: Could not find cursor field modify_time in recordThis confirms Smart+ ads are being dropped. [GitHub Issue] 4. In the meantime, you can track Smart+ ad performance data via the report streams (e.g.,
AdsReportsDaily
), which use a different cursor and are not affected by the
modify_time
filter — though the ad-level metadata fields will still be missing. For updates on the fix, you can follow the internal tracking issue or the PR #81416 directly. šŸ‘ 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 2025-12-01 as start date is kept at source just because of the initial load. After initial load do i need to update it to some other value?
k
Do You Need to Update the Start Date After Initial Load? No, you do not need to update the
start_date
in your source configuration after the initial load.
This is a common point of confusion. Here is why: • The
start_date
in the source configuration is only used as the initial starting point when the connection state is empty (i.e., on the very first sync). • After the initial sync completes, the connector saves the cursor value in the connection state and uses that for all subsequent incremental syncs — the
start_date
is effectively ignored from that point on. [Incremental Sync Docs] This is confirmed by your own connection state — the cursors are now at values like
2026-07-03
,
2026-07-06
,
2026-07-07
, not at
2025-12-01
(except for the second advertiser
7621206560748208145
which appears to have no data since December 2025). The Real Issue With Your Second Advertiser The cursor for advertiser
7621206560748208145
is stuck at
2025-12-01
across all streams. This likely means: • That advertiser had no activity/data between December 2025 and now, so the cursor never advanced. • On every incremental sync, the connector will attempt to fetch ~7 months of data for that advertiser, which could slow down syncs or cause API rate limit issues. If that advertiser is inactive, this is expected behavior and not something you need to fix by changing the
start_date
. [Incremental Sync Docs] šŸ‘ 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 ok then i will keep only 7580116706446655505 in the advertiser filter in source. will it fix?
k
Filtering to a Single Advertiser ID Yes, specifying only advertiser
7580116706446655505
in the source configuration should help in the following ways: • The connector will skip fetching data for the inactive advertiser (
7621206560748208145
), avoiding the unnecessary ~7 months of lookback on every sync. • Syncs should be faster and more focused on your active advertiser. How It Works The TikTok Marketing connector handles a directly configured
advertiser_id
differently — when an ID is provided in the config, the
SingleAdvertiserIdPerPartition
router yields only that single partition and skips the parent stream entirely, rather than fetching all advertiser IDs from the API. [Contributing Docs] Important: Reset the Connection State After Changing Config The knowledge sources do not explicitly confirm this, but since you are changing the advertiser scope, the existing connection state still contains entries for both advertisers. You should: 1. After updating the source config, clear the data for affected streams to reset the state. 2. Trigger a new sync so the state is rebuilt cleanly for only the single advertiser. To clear data: 1. Go to Connections → select your connection. 2. Go to the Status tab. 3. Click the three dots next to each affected stream → Clear Data. 4. Trigger a new sync. This should give you a clean incremental sync going forward for your active advertiser only. šŸ‘ 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 or should i delete the config for the other advertiser id from conenction state manually?
k
Manually Editing Connection State The knowledge sources do confirm that you can manually edit the connection state via the Airbyte UI. [Connection State Docs] To do so: 1. Go to Connections → select your connection. 2. Click the Settings tab. 3. Click the Advanced dropdown. 4. Click anywhere in the Connection State to start editing. 5. Remove the entries for advertiser
7621206560748208145
from each stream's
states
array. 6. Click Update state to confirm. However, There Is an Important Warning > Updates to connection state should be handled with extreme care. Updates may break your syncs, requiring a full historical sync of your data to fix. Make changes only as directed by the Airbyte team. [Connection State Docs] Recommendation Given the risk, the safer approach would be: 1. Update the source config to filter to only advertiser
7580116706446655505
. 2. Clear data for affected streams and let the state rebuild cleanly. This avoids the risk of accidentally corrupting the state and breaking your syncs entirely. Manual state editing is best done only when directed by the Airbyte support team. šŸ‘ 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 is this connection state looks ok? [ { "streamDescriptor": { "name": "ads" }, "streamState": { "state": { "modify_time": "2026-07-03 133042Z" }, "states": [ { "cursor": { "modify_time": "2026-07-03 133042Z" }, "partition": { "parent_slice": {}, "advertiser_id": "7580116706446655505" } } ], "lookback_window": 6, "use_global_cursor": false } }, { "streamDescriptor": { "name": "campaigns" }, "streamState": { "state": { "modify_time": "2026-07-06 093442Z" }, "states": [ { "cursor": { "modify_time": "2026-07-06 093442Z" }, "partition": { "parent_slice": {}, "advertiser_id": "7580116706446655505" } } }, { "streamDescriptor": { "name": "ads_reports_by_country_daily" }, "streamState": { "state": { "stat_time_day": "2026-07-07" }, "states": [ { "cursor": { "stat_time_day": "2026-07-07" }, "partition": { "parent_slice": {}, "advertiser_id": "7580116706446655505" } } ], "lookback_window": 69, "use_global_cursor": false } }, { "streamDescriptor": { "name": "ad_groups" }, "streamState": { "state": { "modify_time": "2026-07-06 093442Z" }, "states": [ { "cursor": { "modify_time": "2026-07-06 093442Z" }, "partition": { "parent_slice": {}, "advertiser_id": "7580116706446655505" } } ], "lookback_window": 3, "use_global_cursor": false } } ]
k
Connection State Review There is a syntax error in the
campaigns
stream entry — the
states
array and
streamState
object are not properly closed. Specifically, it is missing: • The closing
]
for the
states
array • The closing
}
for
streamState
• The
lookback_window
and
use_global_cursor
fields Here is the corrected version:
Copy code
[
  {
    "streamDescriptor": {
      "name": "ads"
    },
    "streamState": {
      "state": {
        "modify_time": "2026-07-03 13:30:42Z"
      },
      "states": [
        {
          "cursor": {
            "modify_time": "2026-07-03 13:30:42Z"
          },
          "partition": {
            "parent_slice": {},
            "advertiser_id": "7580116706446655505"
          }
        }
      ],
      "lookback_window": 6,
      "use_global_cursor": false
    }
  },
  {
    "streamDescriptor": {
      "name": "campaigns"
    },
    "streamState": {
      "state": {
        "modify_time": "2026-07-06 09:34:42Z"
      },
      "states": [
        {
          "cursor": {
            "modify_time": "2026-07-06 09:34:42Z"
          },
          "partition": {
            "parent_slice": {},
            "advertiser_id": "7580116706446655505"
          }
        }
      ],
      "lookback_window": 2,
      "use_global_cursor": false
    }
  },
  {
    "streamDescriptor": {
      "name": "ads_reports_by_country_daily"
    },
    "streamState": {
      "state": {
        "stat_time_day": "2026-07-07"
      },
      "states": [
        {
          "cursor": {
            "stat_time_day": "2026-07-07"
          },
          "partition": {
            "parent_slice": {},
            "advertiser_id": "7580116706446655505"
          }
        }
      ],
      "lookback_window": 69,
      "use_global_cursor": false
    }
  },
  {
    "streamDescriptor": {
      "name": "ad_groups"
    },
    "streamState": {
      "state": {
        "modify_time": "2026-07-06 09:34:42Z"
      },
      "states": [
        {
          "cursor": {
            "modify_time": "2026-07-06 09:34:42Z"
          },
          "partition": {
            "parent_slice": {},
            "advertiser_id": "7580116706446655505"
          }
        }
      ],
      "lookback_window": 3,
      "use_global_cursor": false
    }
  }
]
Content Looks Good Otherwise Once the syntax is fixed, the state looks correct: • āœ… Only one advertiser (
7580116706446655505
) remains in all streams. • āœ… Cursor values are recent and reasonable. • āœ…
use_global_cursor: false
is correct for per-partition cursor tracking. • āœ…
lookback_window
values are preserved from the original state. Make sure to validate the JSON before saving it in the Airbyte UI to avoid breaking your syncs. šŸ‘ 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 TikTok Marketing Support Level:Airbyte Connector Connector Version:5.0.6 (Last updated 3 months ago)
k
Connector Version 5.0.6 — Important Upgrade Needed You are running v5.0.6, which is significantly outdated. This is likely a major contributing factor to the issues you are experiencing. Here is what you are missing: Critical Fixes You Are Missing [TikTok Marketing Changelog] The UTC Timezone Fix is Critical for You Since you are in IST (UTC+5:30), the bug fixed in v5.0.1 specifically addresses: > Fix UTC timezone mismatch causing data loss for ahead-of-UTC accounts This alone could explain why your incremental syncs are returning no data — records may be falling outside the sync window due to timezone miscalculation. Recommendation Upgrade to the latest version (v5.1.2 or newer) immediately before doing any further troubleshooting. Many of the issues you are experiencing may resolve automatically after the upgrade. To upgrade: 1. Go to your Source configuration in Airbyte. 2. Look for the version upgrade prompt. 3. Upgrade to the latest available version. 4. After upgrading, clear data for affected streams and trigger a fresh incremental sync. > āš ļø Note: Even after upgrading, the Smart+ ads
modify_time
issue
will persist until v5.2.0 is released. [GitHub Discussion] šŸ‘ 0 button šŸ‘Ž 0 button ā„¹ļø Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help., with interactive elements
k
@kapa.ai how to upgrade the source connector version
k
How to Upgrade the TikTok Marketing Source Connector Since you are on a self-managed Airbyte instance, follow these steps: Step 1: Update the Local Connector Image 1. In the navigation bar, click Workspace settings > Sources. 2. Find the TikTok Marketing connector in the list. 3. Airbyte will show two versions — the current in-use version and the latest available. 4. Click Change to update to the latest available version. [Connector Updates Docs] Step 2: Update the Connector Instance 1. In the navigation bar, click Workspace settings > Sources. 2. Select your TikTok Marketing source instance. 3. Click Upgrade. 4. Follow the prompt to confirm you are ready to upgrade. > āš ļø If you have multiple instances of the TikTok Marketing source, updating one does not affect the others — you need to upgrade each instance separately. Step 3: Clear Data for Affected Streams (Post-Upgrade) Since this is a significant version jump (5.0.6 → 5.1.2), after upgrading: 1. Go to Connections → select your connection. 2. Click the Schema tab. 3. Click Refresh source schema to detect any schema changes. 4. Click OK → Save changes. 5. Clear data for affected streams and trigger a new sync. [Connector Updates Docs] šŸ‘ 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 upgraded the source . Still the data is not fetched using tiktok source. 0 rows fetched
k
Still 0 Rows After Upgrade — Next Steps The knowledge sources do not contain enough specific detail to fully diagnose why you are still getting 0 rows after upgrading. However, based on everything discussed so far, here is a structured troubleshooting approach: 1. Check the Sync Logs First This is the most important step. Look for any of these specific messages: •
Could not find cursor field modify_time in record
→ Smart+ ads being dropped [GitHub Issue] • Any TikTok API errors like
40067
(query too large) or
60001
(service maintenance) • Any authentication/permission errors 2. Verify the Connection State Was Preserved After upgrading, confirm your manually edited connection state is still intact: 1. Go to Connections → your connection. 2. Click Settings → Advanced → check the Connection State. 3. Ensure it still shows only advertiser
7580116706446655505
with the correct cursor values. 3. Check if ads Stream Has Any Modified Records The
ads
stream cursor is at
2026-07-03 13:30:42Z
. If no ads were modified in your TikTok account since July 3, the stream will legitimately return 0 rows — this is expected behavior since it uses
modify_time
as its cursor. 4. For Report Streams Specifically Your
ads_reports_by_country_daily
cursor is already at
2026-07-07
. Given: • TikTok's ~11 hour data latency • Your 7-day attribution window Try manually setting the cursor back by 1-2 days (e.g.,
2026-07-05
) in the connection state for report streams to force a re-fetch of recent data. 5. Try a Test With Full Refresh As a diagnostic step, temporarily switch one stream (e.g.,
campaigns
) to Full Refresh mode and run a sync. If data comes through, the issue is specifically with incremental cursor logic, not connectivity or authentication. 6. Reduce Daily Reports Date Step If report streams are failing silently, try reducing the Daily Reports Date Step from 30 to 7 or 1 in your source configuration to avoid TikTok API query size limits. [TikTok Marketing Docs] If none of the above helps, I'd strongly recommend: • Sharing the full sync logs in the Airbyte Community Slack • Or opening a support ticket at support.airbyte.com referencing your connector version and connection state. šŸ‘ 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 logs : 2026-07-08 075204 platform INFO APPLY Stage: BUILD — (workloadId=3fbf2209-a030-49a7-86b9-8313a3a0e7ef_136_0_sync) 2026-07-08 075204 platform INFO APPLY Stage: CLAIM — (workloadId=3fbf2209-a030-49a7-86b9-8313a3a0e7ef_136_0_sync) 2026-07-08 075204 platform INFO Claimed: true for workload 3fbf2209-a030-49a7-86b9-8313a3a0e7ef_136_0_sync via API in dataplane 3e7ac231-a3ce-4a43-9262-38a1ddc959aa (35559aed-24f0-4c3a-92d8-c099063ad0e0) 2026-07-08 075204 platform INFO APPLY Stage: LOAD_SHED — (workloadId=3fbf2209-a030-49a7-86b9-8313a3a0e7ef_136_0_sync) 2026-07-08 075204 platform INFO APPLY Stage: CHECK_STATUS — (workloadId=3fbf2209-a030-49a7-86b9-8313a3a0e7ef_136_0_sync) 2026-07-08 075204 platform INFO No pod found running for workload 3fbf2209-a030-49a7-86b9-8313a3a0e7ef_136_0_sync 2026-07-08 075204 platform INFO APPLY Stage: MUTEX — (workloadId=3fbf2209-a030-49a7-86b9-8313a3a0e7ef_136_0_sync) 2026-07-08 075204 platform INFO Mutex key: 3fbf2209-a030-49a7-86b9-8313a3a0e7ef specified for workload: 3fbf2209-a030-49a7-86b9-8313a3a0e7ef_136_0_sync. Attempting to delete existing pods... 2026-07-08 075204 platform INFO Mutex key: 3fbf2209-a030-49a7-86b9-8313a3a0e7ef specified for workload: 3fbf2209-a030-49a7-86b9-8313a3a0e7ef_136_0_sync found no existing pods. Continuing... 2026-07-08 075204 platform INFO APPLY Stage: ARCHITECTURE — (workloadId=3fbf2209-a030-49a7-86b9-8313a3a0e7ef_136_0_sync) 2026-07-08 075204 platform INFO Building STDIO environment: source IPC options missing 2026-07-08 075204 platform INFO APPLY Stage: LAUNCH — (workloadId=3fbf2209-a030-49a7-86b9-8313a3a0e7ef_136_0_sync) 2026-07-08 075204 platform INFO [initContainer] image: airbyte/workload-init-container:2.1.0 resources: ResourceRequirements(claims=[], limits={memory=2Gi, cpu=1.5}, requests={memory=2Gi, cpu=1}, additionalProperties={}) 2026-07-08 075204 platform INFO Launching replication pod: replication-job-136-attempt-0 (selectors = {}) with containers: 2026-07-08 075204 platform INFO [source] image: airbyte/source-tiktok-marketing:5.1.2 resources: ResourceRequirements(claims=[], limits={memory=2Gi, cpu=1.5}, requests={memory=1Gi, cpu=1}, additionalProperties={}) 2026-07-08 075204 platform INFO [destination] image: airbyte/destination-bigquery:3.0.18 resources: ResourceRequirements(claims=[], limits={memory=2Gi, cpu=1.5}, requests={memory=1Gi, cpu=1}, additionalProperties={}) 2026-07-08 075204 platform INFO [orchestrator] image: airbyte/container-orchestrator:2.1.0 resources: ResourceRequirements(claims=[], limits={memory=2Gi, cpu=1.5}, requests={memory=2Gi, cpu=1}, additionalProperties={}) 2026-07-08 080704 platform ERROR Stage Pipeline Exception: io.airbyte.workload.launcher.pipeline.stages.model.StageError: io.airbyte.workers.exception.ResourceConstraintException: Unable to start the REPLICATION pod. This may be due to insufficient system resources. Please check available resources and try again. message: io.airbyte.workers.exception.ResourceConstraintException: Unable to start the REPLICATION pod. This may be due to insufficient system resources. Please check available resources and try again. stackTrace: [Ljava.lang.StackTraceElement;@161c3d8c 2026-07-08 080704 platform INFO Attempting to update workload: 3fbf2209-a030-49a7-86b9-8313a3a0e7ef_136_0_sync to FAILED. 2026-07-08 080704 platform INFO Pipeline aborted after error for workload: 3fbf2209-a030-49a7-86b9-8313a3a0e7ef_136_0_sync. 2026-07-08 080705 platform INFO ----- START POST REPLICATION OPERATIONS ----- 2026-07-08 080705 platform INFO No post-replication operation(s) to perform. 2026-07-08 080705 platform INFO ----- END POST REPLICATION OPERATIONS -----
k
Root Cause Found: Insufficient Kubernetes Resources The logs clearly show the issue is not with TikTok's API or the connector — it is a Kubernetes resource problem:
Copy code
ResourceConstraintException: Unable to start the REPLICATION pod. 
This may be due to insufficient system resources.
The pod was attempted at
07:52:04
but failed after 15 minutes at
08:07:04
— meaning Kubernetes could not schedule the pod within the timeout window. [GitHub Issue] What the Logs Show The connector tried to launch with these resources:
Copy code
[source]      limits={memory=2Gi, cpu=1.5}  requests={memory=1Gi, cpu=1}
[destination] limits={memory=2Gi, cpu=1.5}  requests={memory=1Gi, cpu=1}
[orchestrator] limits={memory=2Gi, cpu=1.5} requests={memory=2Gi, cpu=1}
Your Kubernetes cluster does not have enough free CPU/memory to schedule all three containers simultaneously. Immediate Steps to Fix 1. Check Available Node Resources
Copy code
kubectl describe nodes | grep -A 5 "Allocated resources"
2. Check for Pending/Failed Pod Events
Copy code
kubectl get events --namespace <airbyte-namespace> --field-selector reason=FailedScheduling
3. Check Pod Status
Copy code
kubectl get pods -n <airbyte-namespace> | grep replication-job-136
Solutions Option A: Scale Up Your Kubernetes Cluster Add more nodes or increase the size of existing nodes to provide more CPU/memory headroom. [Scaling Airbyte Docs] Option B: Reduce Resource Requests Lower the resource requests so the pod can be scheduled on existing nodes. In your `values.yaml`:
Copy code
global:
  jobs:
    resources:
      requests:
        cpu: "0.5"
        memory: "512Mi"
      limits:
        cpu: "1"
        memory: "2Gi"
[Configuring Connector Resources] Option C: Reduce Concurrent Syncs If other syncs are running simultaneously and consuming resources, stagger your sync schedules to reduce concurrent load. [GitHub Issue] > āš ļø This explains why you were seeing 0 records — the replication pod never actually started, so no data could be fetched. The TikTok connector itself is not the problem here. šŸ‘ 0 button šŸ‘Ž 0 button ā„¹ļø Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.