karthick.rajan
07/08/2026, 4:09 AMkapa.ai
07/08/2026, 4:09 AMads 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.karthick.rajan
07/08/2026, 4:13 AMkapa.ai
07/08/2026, 4:13 AMmodify_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.karthick.rajan
07/08/2026, 5:34 AMkapa.ai
07/08/2026, 5:34 AM7621206560748208145) 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.karthick.rajan
07/08/2026, 5:36 AMkapa.ai
07/08/2026, 5:36 AMads_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.karthick.rajan
07/08/2026, 5:37 AMkapa.ai
07/08/2026, 5:37 AMstart_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.karthick.rajan
07/08/2026, 5:40 AMkapa.ai
07/08/2026, 5:40 AM7580116706446655505 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.karthick.rajan
07/08/2026, 5:42 AMkapa.ai
07/08/2026, 5:42 AM7621206560748208145 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.karthick.rajan
07/08/2026, 5:45 AMkapa.ai
07/08/2026, 5:45 AMcampaigns 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:
[
{
"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.karthick.rajan
07/08/2026, 5:47 AMkapa.ai
07/08/2026, 5:47 AMmodify_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 elementskarthick.rajan
07/08/2026, 5:48 AMkapa.ai
07/08/2026, 5:48 AMkarthick.rajan
07/08/2026, 6:14 AMkapa.ai
07/08/2026, 6:14 AMCould 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.karthick.rajan
07/08/2026, 6:15 AMkapa.ai
07/08/2026, 6:16 AMResourceConstraintException: 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:
[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 kubectl describe nodes | grep -A 5 "Allocated resources"
2. Check for Pending/Failed Pod Events kubectl get events --namespace <airbyte-namespace> --field-selector reason=FailedScheduling
3. Check Pod Status 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`:
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.