Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
When Stitch replicates data from SaaS sources, it must operate within the API rate limits defined by each vendor. These limits determine how many API requests can be made within a specific time period to prevent server overload. Exceeding them typically results in rate limit errors (most often HTTP 429 responses), which can temporarily interrupt data replication.
This article outlines common API rate limit errors observed in Stitch integrations and provides best practices to help you minimize and handle these limits for reliable data replication.
The exact error message for exceeding API rate limits varies across platforms, but all indicate the same underlying cause — too many API requests made within a defined time window.
Refer to the table below for examples of rate limit errors observed in popular Stitch SaaS integrations | Stitch Documentation:
| Integration | Rate Limit Error Message |
| Chargebee | HTTP-error-code: 429, Error: Sorry, access has been blocked temporarily due to request count exceeding acceptable limits. Please try after some time. |
| Facebook Ads | SingerSyncError GET: 400 Message: User request limit reached |
| GA4 (Google Analytics) | 503 429:Too Many Requests |
| Google Ads | 429 Resource has been exhausted (e.g. check quota)… |
| Help Scout | Too Many Requests. You reached the rate limit, Please retry after sometime. |
| Jira | HTTP-error-code: 429, Error: The API rate limit for your organisation/application pairing has been exceeded. |
| Klaviyo | HTTP-error-code: 429, Error: The API rate limit for your organization/application pairing has been exceeded. |
| Linkedin Ads | HTTP-error-code: 429, Error: API rate limit exceeded, please retry after some time. |
| Marketo | Marketo API returned error(s): [{'code': '606', 'message': "Max rate limit '100' exceeded with in '20' secs"}]. This is due to a short term rate limiting mechanism. Backing off and retrying the request. |
| Mixpanel | HTTP-error-code: 429, Error: The API rate limit for your organization/application pairing has been exceeded. |
| Pardot | Pardot returned error code 122 while retrieving endpoint. Message: Daily API rate limit met |
| Pipedrive | 429 Client Error: Too Many Requests for url: https://api.pipedrive.com/v1… |
| Pipedrive | HTTP-error-code: 429, Error: Daily Rate limit has been exceeded. |
| Shopify | 429 Too Many Requests |
| Trello | 429 Client Error: Too Many Requests for url: https://api.trello.com/1… |
| Stripe | Request rate limit exceeded. You can learn more about rate limits here https://stripe.com/docs/rate-limits. |
| Xero | HTTP-error-code: 429, Error: The API rate limit for your organisation/application pairing has been exceeded. Please retry… |
| Yotpo | The API limit exceeded |
| Zendesk | HTTP-error-code: 429, Error: The API rate limit for your organisation/application pairing has been exceeded. |
| Zoom | {"code":429,"message":"You have reached the maximum daily rate limit for this API. Refer to the response header for details on when you can make another request."} |
Reduce replication frequency of an integration if extractions frequently exceed the API’s rate limit.
Stagger replication frequency schedules for multiple integrations that connect to the same source account to reduce the number of concurrent calls.
Use the key-based incremental replication method | Stitch Documentation where available:
Full Table Replication: Extracts all data from the Start Date indicated in the integration settings during every extraction. This usually requires many API calls as most integrations use pagination to retrieve data.
Incremental Replication: Only fetches new or changed records since the last successful sync, based on a bookmark value.
Incremental replication can reduce API call volume by extracting less data, thereby reducing the number of API calls that would need to be made.
Monitor extraction logs in Stitch for frequent 429 errors.
Contact the API provider to request increased rate limits where applicable.
Contact Qlik Support if needed.
You may encounter an error when attempting to send emails from Qlik Talend Runtime version v8.0.1.R2025-02-RT, specifically within OSGi Data Services. While email notifications work correctly when triggered from Talend Studio, they fail in the Runtime Environment, resulting in the following error:
java.lang.IllegalStateException: No provider of jakarta.mail.util.StreamProvider was found
It has been resolved in the R2025-06-RT runtime patch.
To fix this, please upgrade Runtime to v8.0.1. R2025-06-RT or the latest available patch version, and re-deploy your route.
It is a known issue in tSendMail component for Talend Runtime v8.0.1.R2025-02-RT environment and has already been reported to our R&D team.
Internal Jira case ID: SUPPORT-3698
You may be experiencing a critical problem where some Talend jobs open without any components in the Designer View. The jobs appear empty in Studio even after:
This article briefly introduces how to fix Corruption in a Git Repository for Qlik Talend Projects
Rolling Back to an Earlier Commit
This behavior indicates that the corruption exists in the Git repository itself. The most effective way to restore a corrupted Git project is to roll back to a previous version of the Git branch where the jobs were intact.
Steps
References for Git Rollback
How can I rollback a Git repository to a specific commit?| stackoverflow.com
Revert a Git Repository to a Previous Commit | sentry.io
This article briefly introduces how to do transformation for Key Columns in Talend Cloud Data Integration
TransformationRule
RuleExpressionBuilder
Expression
Expression2
Condition
Expression3
Your Shopify integration encounters the following extraction error:
HTTPError GraphQL request failed for stream 'order_refunds' with status 504 and X-Request-ID '...', Reason: Gateway Timeout - upstream request timeout.
If this issue is recurring and disrupting your workflow, please contact Qlik Support. We also recommend reaching out to Shopify Support with the X-Request-ID included in the error message.
This dual approach is important because:
Shopify’s API is timing out due to the volume of data it needs to return in response to Stitch’s requests. This is most commonly observed with the orders and order_refunds streams, which tend to contain large amounts of data in many stores.
The goal of this article is to address the upcoming changes announced by Marketo regarding the deprecation of authentication via the access_token query parameter, which will no longer be supported after January 31, 2026. For further details, please refer to: Using an Access Token | Marketo Developer Guide.
Marketo specificities: "If your project uses a query parameter to pass the access token, it should be updated to use the Authorization header as soon as possible. New development should use the Authorization header exclusively".
The Stitch Marketo integration (V2) already handles authentication using access tokens, as outlined in Marketo’s documentation. Specifically, Stitch includes a Bearer token in the Authorization header of its API calls. This approach complies with Marketo’s authentication requirements, so no additional configuration is needed on your end.
For reference, please visit the integration's repository | github.com.
When sharing a TAC (Talend Administration Center) or Studio patch with customers, some may request the hash value of the patch file.
This hash (Such as MD5, SHA-1, or SHA-256) is used to verify the integrity of the downloaded file, ensuring that the patch has not been corrupted or altered during transmission.
You can find the hash value of a patch (for instance, in the package provided by Qlik or from the build repository) as shown in the screenshot below:
It is the value of CheckSums
Question
How can we retrieve artifact information from Talend update website? For instance, for artifact "accessors-smart-2.4.11.jar", we can use the following URL to query its information: https://search.maven.org/solrsearch/select?q=a:accessors-smart+AND+v:2.4.11&rows=1&wt=json
Does Talend also offer a similar feature for its artifacts?
Answer
Talend update website is built on Nexus and utilizes the Lucene search API, as demonstrated in the following example:
https://talend-update.talend.com/nexus/service/local/lucene/search?a=accessors-smart&v=2.4.11
For further details on the Lucene search API, please refer to: Nexus Indexer Lucene Plugin REST API | repository.sonatype.org
Google Ads integration encounters the extraction error:
tap - CRITICAL (<_InactiveRpcError of RPC that terminated with:
tap - CRITICAL status = StatusCode.PERMISSION_DENIED
tap - CRITICAL details = "The caller does not have permission"
tap - CRITICAL debug_error_string = "UNKNOWN:Error received from peer ipv4:172.253.115.95:443 {grpc_message:"The caller does not have permission", grpc_status:7}"
tap - CRITICAL >
tap - CRITICAL errors {
tap - CRITICAL error_code {
tap - CRITICAL authorization_error: USER_PERMISSION_DENIED
tap - CRITICAL }
tap - CRITICAL message: "User doesn't have permission to access customer. Note: If you're accessing a client customer, the manager's customer id must be set in the 'login-customer-id' header. See https://developers.google.com/google-ads/api/docs/concepts/call-structure#cid"
tap - CRITICAL }
tap - CRITICAL request_id: "xxxxxxxxxxxxxx"
Sign in to the Google Ads UI and ensure that:
You have access to the customer account ID you’re trying to query.
If it’s a client account, it must be linked to a manager (MCC) account that has API access.
If you see that the customer account is cancelled or inactive, reactivate it by following Google’s guide:
Reactivate a cancelled Google Ads account | support.google.com
If the issue persists, reach out to Google Ads API support with:
The error snippet
The request_id from your extraction logs (used by Google to trace the failed call)
Re-authorize the Google Ads integration:
Open Stitch in an incognito browser window.
Go to the Google Ads integration settings.
Click Re-authorize and follow the OAuth flow.
After re-authorizing, navigate to the Extractions tab and click Run Extraction Now.
If you manage multiple Google Ads accounts, note that:
Some accounts may work while others fail if they’re not connected to a manager account.
Only Ads accounts linked to a manager (MCC) have Ads API access.
Regular advertiser accounts must be linked to a manager account for Stitch to extract data successfully.
Prevention Tips
Periodically verify that the connected Google Ads account is linked to a manager account and the OAuth token has not expired.
Check for account status (ENABLED, CANCELLED, etc.) using the CustomerStatus enum | developers.google.com if you suspect deactivation.
Document the manager–client hierarchy for clarity when managing multiple accounts.
The error message indicates that the Google Ads API denied permission for the request. This is a raw authorization error returned by Google Ads, specifically:
USER_PERMISSION_DENIED
The user or OAuth credentials being used don’t have permission to access the target Ads customer account.
If you’re accessing a client (managed) account, the manager account ID must be provided in the login-customer-id header.
See Google’s reference documentation in Authorizationerror | developers.google.com.
During our company's auditing, we have been alerted to several vulnerabilities in the embedded Java VM for Replicate v2024.11.0.177
https://nvd.nist.gov/vuln/detail/CVE-2024-21235
https://nvd.nist.gov/vuln/detail/CVE-2024-21208
https://nvd.nist.gov/vuln/detail/CVE-2024-21217
https://nvd.nist.gov/vuln/detail/CVE-2024-21211
https://nvd.nist.gov/vuln/detail/CVE-2024-21210
Is there a newer version of Replicate that addresses these? If not, what is the recommended path to fix these vulnerabilities?
To resolve the Issue, upgrade OpenJDK to version 17.0.13 or later or upgrade Replicate to version 2025.5.
Upgrade only Java while keeping your current Replicate version 24.11
You should upgrade to a Java version that addresses the CVE (JAVA version 17.0.14+7), but not a major version. Alternatively, download any other relevant JRE binaries.
Manual steps to update the JRE for Replicater
The steps are similar for Replicate on Windows or Unix.
Defects: CVE-2024-21235;CVE-2024-21208;CVE-2024-21217;CVE-2024-21211;CVE-2024-21210
When a task is processing CDC data, the internal replicate engine uses "Linux iconv" API to convert the incoming delta records. If the conversion fails, following warning and error is displayed in the logs:
2025-07-09T06:44:56:68127[SERVER W: Conversion error 84,CodepageFrom=943, CodepageTo=65001, insize=16, output='', outSize=99(str.c:509)
2025-07-09T06:44:56:70391[SOURCE_CAPTURE]E: Error converting column 'column name' in table 'table name' to UTF8 using codepage 943 [1020112](db2luw_endpoint_capture.c:1321)
2025-07-09T06:44:56:70414[ASSERTION]W:The problematic column value:
7f7a040a921a: 834F838A815B8358834183628376FCFC | .O...[.X.A.b.v..
7f7a040a922a: 8140814081408140814081408140| .@.@.@.@.@.@.@
(db2luw_endpoint_capture.c:1323)
The change data converted to hexadecimal contained character value "FCFC", which could not be converted to Unicode.
To validate whether the issue is caused by the data itself, we can also use third-party tool such as DBeaver to check if throws the same error when selecting the data from source DB.
When upgrading to Qlik Talend Studio R2025-06v3 or later tSnowflakeRow with Snowflake-jdbc-driver-3.22.0 that uses the function LAST_QUERY_ID() in command always returns “Alter session set JDBC_USE_SESSION_TIMEZONE=false” instead of the the correct query id(query id last query ran)as a result.
To have LAST_QUERY_ID() return the last query and not the alter session query, it is required to modify the command to use LAST_QUERY_ID(-2).
For example:
Select query used in tSnowflakeRow component
"SELECT LAST_QUERY_ID() as LAST_QUERY_ID(-2);"
In Studio R2024-04, a new checkbox "Use Session Timezone" was added to the tSnowflakeInput and tSnowflakeRow components. The default value is unchecked (Alter session set JDBC_USE_SESSION_TIMEZONE=false) to avoid Snowflake regression issue Incorrect timezone handling for java.sql.Time, However this does bring the side effect of snowflake functions like LAST_QUERY_ID() returning the wrong value.
2025-04-studio-known-issues for 'Use Session Timezone' option in the Snowflake components
After upgrading to Remote Engine 2.13.13, when enabling the option to execute a job from Studio on a remote engine, the process fails due to SSL and PKCS-related errors.
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
SSL Configuration for Talend Studio to Connect with Remote Engine
During the installation of Talend Remote Engine, SSL credentials are automatically generated. To retrieve the keystore password, execute the following command:
cat /opt/TalendRemoteEngine/bin/sysenv
and locate the line
TMC_ENGINE_JOB_SERVER_SSL_KEY_STORE_PASSWORD=<PASSWORD>
The following files are necessary for secure communication between Talend Studio and the Remote Engine:
/opt/TalendRemoteEngine/etc/keystores/jobserver-client-keystore.p12
/opt/TalendRemoteEngine/etc/keystores/jobserver-client-truststore.p12 (Truststore file added with RE 2.13.13)
Transfer these files to your Talend Studio workstation and store them in a dedicated folder.
Edit the Studio startup configuration file, depending on your operating system:
-Dorg.talend.remote.client.ssl.force=true
-Dorg.talend.remote.client.ssl.keyStore=path_to_keystore/jobserver-client-keystore.p12
-Dorg.talend.remote.client.ssl.keyStoreType=PKCS12
-Dorg.talend.remote.client.ssl.keyStorePassword=<password_from_step_1>
-Dorg.talend.remote.client.ssl.keyPassword=<password_from_step_1><
-Dorg.talend.remote.client.ssl.trustStore=path_to_truststore/jobserver-client-truststore.p12
-Dorg.talend.remote.client.ssl.trustStoreType=PKCS12
-Dorg.talend.remote.client.ssl.trustStorePassword=<password_from_step_1>
-Dorg.talend.remote.client.ssl.disablePeerTrust=false
-Dorg.talend.remote.client.ssl.enabled.protocols=TLSv1.2,TLSv1.3
Talend Remote Engine enforces SSL communication by default, ensuring that all interactions with the engine are encrypted. If Studio does not have the appropriate certificates installed, it will be unable to establish a secure connection with the Remote Engine.
In processing step, under Lineage, you may unable to select the "Allow Lineage collection of this task" check box to enable it when creating or editing your task in Talend Management Console.
To verify your Qlik Talend Cloud License Type
The reason of "Allow Lineage collection of this task" option is not visible when creating tasks in Qlik Talend Management Console is due to the type of license currently in use. The Lineage feature is only available with the Qlik Talend Cloud Enterprise Edition or Qlik Talend Cloud Premium Edition licenses.
For more details please find the links below
For Qlik Talend On-premises Solution, when using global context values in all jobs, If you want to change the file path values to replace d:/ with t:/, you can propagate the change to all jobs in the Studio.
How about Qlik Talend Cloud and Hybrid Solutions? This article provides a brief introduction to changing the value of context parameters and propagating the change to all Tasks in Talend Cloud.
You can use this API to update artifact parameters
Put https://api.eu.cloud.talend.com/orchestration/executables/tasks/{taskid}
In the body, set the paramters you want to update:
Example: change the ContextFilePath": from "C:/Franking/in.csv" to "h:/Franking/in.csv")
{
"name": "contextpath",
"description": "CC",
"workspaceId": "61167bef18d7d656bfae071d",
"artifact": {
"id": "689b5d04febbe74489779c31",
"version": "0.1.0.20251208032554"
},
"parameters":{
"ContextFilePath": "h:/Franking/in.csv"
}
}
To maintain context values better in the long run for multiple jobs, create a Connection in Talend Cloud. This way, all context in the job can be updated by updating the file name in the Qlik Talend Management Console Connection as opposed to running the API multiple times. For information on how to set up a connection, see Managing connections.
If using the tap-shopify connector in Stitch for the orders stream, you may encounter the following error:
"An error occurred with the GraphQL API"
To resolve the error:
Why This Happens
This is a Shopify platform constraint, not a Stitch limitation.
The Shopify Bulk API has an important restriction that only one bulk operation per type (e.g., orders) can run at a time per shop.
This means: If a bulk job is already running, any new request of the same type will fail. Overlapping jobs from multiple Stitch connections or other platforms can trigger this error.
When You Might See This Error
You may encounter this message if:
Shopify Bulk API Documentations:
https://shopify.dev/docs/api/usage/bulk-operations/queries#limitations
Bulk operations with the GraphQL Admin API
When migrating a web service job from Talend Studio 7 to Talend Studio 8, the job fails to run in Talend 8 with Java 17, which was previously executed successfully under Java 8 or Java 11.
The execution is failing with the error:
The package javax.xml.namespace is accessible from more than one module: <unnamed>, java.xml
Upon detailed review, it is identified that a Code → Routine Utility Class referencing third-party JARs (such as jaxrpc and xpp3) includes the javax.xml related package which causes a module conflict.
To resolve the conflict, these JARs should either be removed from the project’s library references or modified to exclude the javax.* package, thereby preventing duplication with the JDK provided java.xml module.
This seems to be related to Java module conflicts introduced in Java 9 and above. In Talend 8, the job runtime relies on Java 17, which appears to be incompatible with the way certain XML packages were handled in the earlier environment.
This error message indicates that the same package is being loaded from multiple sources. In this context, it means there is a duplicate JAR reference in the job design.
Potatial Causes
Since Java 9, the JDK already includes the java.xml module, which contains the javax.xml.namespace package. If third-party JARs also provide this package, it causes a module conflict.
You may be expericening the following compilation error in your talend ESB route cJMS component with "WebSphare MQ" when migrating from v7 to Talend v8-R2025-06.
The method jmsComponent(JmsConfiguration) in the type JmsComponent is not applicable for the arguments (ConnectionFactory)
Use the studio patch v8-R2025-08 which contains updated javajet file and README with details of installation process.
The code generator for cJMS with "WebSphare MQ" component is still using javax.jms.ConnectionFactory in talend studio, which is not aligned with camel-jms (Camel 4.8.1) that is using jakarta.jms.ConnectionFactory connection Factor.
Internal Jira case ID: QAPPINT-1661
The following error is found in log when working on a Git project in Talend Studio:
org.talend.commons.exception.CommonExceptionHandler - Branches configuration is out of sync, can't find the specified branch ****, will try to recover it using it's remote branch.
In order to fix this, please modify the remote repository as well.
For example, if you delete the branch on Talend Studio, please delete it from the remote repository as well.
If you are using Github, it would mean deleting the branch on Github from the following link:
https://github.com/[repository name]/branches
or using Git command tools like Git Bash to delete the branch from the remote repository.
The git branch structure in Talend Studio does not match the repository in the actual Git repository.
This usually occurs when you modify the branch in the local project, but it is not modified the same way in the remote repository.