Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Oracle to SQL Violation of PRIMARY KEY constraint. During full load, table is suspended due to Primary Key Violation.
[TARGET_LOAD ]E: RetCode: SQL_SUCCESS SqlState: 23000 NativeError: 2627 Message: [Microsoft][ODBC Driver 18 for SQL Server][SQL Server]Violation of PRIMARY KEY constraint 'SERVICE_SYS_C001817631'. Cannot insert duplicate key in object 'dbo.SERVICE'. The duplicate key value is (G2190)
00010944: 2025-06-16T10:35:15 [TASK_MANAGER ]W: Table 'dbo'.'SERVICE' (subtask 1 thread 1) is suspended. RetCode: SQL_SUCCESS SqlState: 23000 NativeError: 2627 Message: [Microsoft][ODBC Driver 18 for SQL Server][SQL Server]Violation of PRIMARY KEY constraint 'SERVICE_SYS_C001817631'. Cannot insert duplicate key in object 'dbo.SERVICE'. The duplicate key value is (G2190).; Failed to commit 10000 rows to target 'dbo.SERVICE' (replicationtask.c:3239)
This could be a classic capitalization issue between Oracle source to SQL target
Example
CREATE TABLE adam.products (
product_sku VARCHAR2(50) NOT NULL,
product_name VARCHAR2(255) NOT NULL,
price NUMBER(10, 2),
CONSTRAINT products_pk PRIMARY KEY (product_sku)
);
Then insert 2 identical records except for their capitalizations:
INSERT INTO adam.products (product_sku, product_name, price)
VALUES ('key-logi-mx-m', 'Logitech MX Keys Mechanical (lowercase sku)', 169.00);
INSERT INTO adam.products (product_sku, product_name, price)
VALUES ('KEY-LOGI-MX-M', 'Logitech MX Keys Mechanical (UPPERCASE SKU)', 169.00);
Now, since Oracle is case-sensitive and the default installation of SQL Server is case-insensitive, it is a duplicate in SQL.
RetCode: SQL_SUCCESS SqlState: 23000 NativeError: 2627 Message: [Microsoft][ODBC Driver 18 for SQL Server][SQL Server]Violation of PRIMARY KEY constraint 'PRODUCTS_PRODUCTS_PK'. Cannot insert duplicate key in object 'ADAM.PRODUCTS'. The duplicate key value is (KEY-LOGI-MX-M). [1022510] (sqlserver_endpoint_imp.c:5764)
It is changeable, by ALTER table on target.
ALTER TABLE ADAM.Products
ALTER COLUMN product_sku VARCHAR(50) COLLATE Latin1_General_CS_AS NOT NULL;
For Replicate , you would have to:
Unable to login to Talend Administration Center(TAC) and getting the error after providing the credentials:
"SSO prevent direct login from windows Please login by identity provider system"
sso.field.useSSOLogin=false
Ensure you take a backup of the table and also are using correct credential details.
Accidentally turn on SSO login or might be DB table corruption.
Stitch only offers account consolidation at the billing level.
If you have multiple Stitch accounts, you can reach out to the Sales team to help you consolidate your accounts so that you only get billed once for all accounts.
However, the accounts themselves cannot be merged, i.e., integrations and destinations setup in one account cannot be migrated to another. If you prefer to avoid managing multiple accounts, you will need to setup your workflows in your preferred account, and this will include historical loads for newly setup integrations.
Please note that Stitch offers a 7-day exemption for newly named integrations. This implies that if you setup an integration with a schema name that was not previously used in the account, it will be regarded as a new integration. Schema names are verified against individual Stitch accounts only.
If you intend to manage multiple Stitch accounts and need to add the same team members in each account, please use the naming convention outlined here to add new members.
When opening the Qlik Sense hub, the following error is displayed:
Error requesting "https://_:4242/qrs/license/" - Error: tunneling socket could not be established, cause=getaddrinfo ENOTFOUND 80808080:80
However, the Qlik Sense logs are relatively clean during this time.
Only log files in C:\ProgramData\Qlik\Sense\Log\HubService shows the same message repeatedly:
6 20180409T133219.753+1000 ServerName 0.15.8 Global INFO Requesting GET https://ServerName:4242/qrs/license/, referrer /license/
7 20180409T133222.053+1000 ServerName 0.15.8 Global ERROR [ Error requesting GET https://ServerName:4242/qrs/license/ ] - Error: tunneling socket could not be established, cause=getaddrinfo ENOTFOUND 8080 8080:80
Proxy Service is accessing Repository Service via URL https://ServerName:4242.
This connection respects the Proxy Settings in Environment Variables. Any limitations caused by the environment proxy settings will prevent service communication.
Important: There might be settings automatically add these variables back to the server after a restart or certain time period. Should that happen please contact Windows Administrator to resolve.
Qlik NPrinting tasks appear to run but are stuck on the same percentage.
Qlik NPrinting can work for days or even weeks, completing tasks correctly. Suddenly, all task stops at different levels of execution. New tasks start, but stay on 0%.
Idle sessions have already been removed by applying How to remove the Idle Connections from Nprinting Related processes.
This error message is shown in the rabbit logs in C:\ProgramData\NPrinting\RabbitMQ for a default installation:
{{badmatch,{error,eacces}}
Qlik NPrinting is installed on a Windows 2019 server, and the version of Qlik NPrinting works with RabbitMQ 4 or higher (see the system requirements page to identify your Qlik NPrinting track).
Restarting all Qlik NPrinting and Qlik Sense services can temporarily resolve the problem.
It is possible to mitigate the problem by installing the latest release of Qlik NPrinting, but this is still not a full solution, as the same issue may repeat due to a defect in Windows Server 2019.
A complete solution is to upgrade the operating system where Qlik NPrinting is installed to a higher version.
The problem is caused by specific updates affecting Windows file system components in Windows Server 2019 that occasionally prevent system access for our messaging service.
Qlik Sense Search Folder is growing in size.
Smart search is the global search tool in Qlik Sense, enabling you to search the entire data set in your app from any sheet in the app. See Using Smart Search on the official Qlik Online Help for details.
This search is indexed to disk at %Share%/Apps/Search.
As time goes on, the index grows and commits more disk space.
The contents of the Qlik Sense Search folders can be deleted to free up disk space. The content pertains to App ID's, so it would be best to remove those which are not often used. The only effect this would have is increasing the amount of time needed to complete a Smart Search for this same App in the future.
Qlik Sense can also be configured to purge the Search Folder on a schedule. The setting will need to be applied in the settings.ini of either the Qlik Sense Enterprise Server or the Qlik Sense Desktop. For information on how to edit the settings.ini file, reference How to modify Qlik Sense Engine's Settings.ini.
Qlik Sense Server | %PROGRAMDATA%/Qlik/Sense/Engine/Settings.ini |
Qlik Sense Desktop | %USERPROFILE%/Documents/Qlik/Sense/Settings.ini |
Name
ServerPurgeSearchIndexFileInterval
Default Value
3600
Description
The purge system removes the unused search index files. In addition, it removes the oldest used search index files until the search index folder is smaller than ServerSearchIndexFileDirectoryMaximumSizeInMBytes.
Name
ServerSearchIndexFileDirectoryMaximumSizeInMBytes
Default Value
-1
Description
Maximum size of the search index directory in megabytes. During the periodic purge, old indexes are removed until the total size of index files is below this threshold. If negative, do not limit the size of the directory.
Make sure to add both parameters mentioned above into the settings.ini, the cleaning will happen at the specified intervall but only after the size limit is reached.
You may encounter an error : 400 - Invalid SNI when calling Talend Runtime API (Job as service) after installed 2025-02 patch or later. In the past before the patch version R2025-02 of Talend Runtime Server, it did work well when using the same certificate for SSL connection with Talend Runtime Server and did not cause any issue.
The SNI validation is active after 2025-02 patch or later.
There are three options to slove this issue
Disable SNI Host Check
This has the same security risk as jetty before it was updated (low security)
In <RuntimeInstallationFolder>/etc/org.ops4j.pax.web.cfg file, please add
jetty.ssl.sniRequired=false
and
jetty.ssl.sniHostCheck=false
Or configuring these jetty parameters in <RuntimeInstallationFolder>/etc/jetty.xml or jetty-ssl.xml file
<New id="sslHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
<Arg><Ref refid="httpConfig"/></Arg>
<Call name="addCustomizer">
<Arg>
<New class="org.eclipse.jetty.server.SecureRequestCustomizer">
<Arg name="sniRequired" type="boolean">
<Property name="jetty.ssl.sniRequired" default="false"/>
</Arg>
<Arg name="sniHostCheck" type="boolean">
<Property name="jetty.ssl.sniHostCheck" default="false"/>
</Arg>
<Arg name="stsMaxAgeSeconds" type="int">
<Property name="jetty.ssl.stsMaxAgeSeconds" default="-1"/>
</Arg>
<Arg name="stsIncludeSubdomains" type="boolean">
<Property name="jetty.ssl.stsIncludeSubdomains" default="false"/>
</Arg>
</New>
</Arg>
</Call>
</New>
Resolve IP to Hostname
If the certification includes the domain name, you should use that domain name instead of the IP with the Jetty security updates in Talend Runtime Server.
But if your DNS server does not resolve the IP, you must call it by the IP address, so please check it at first to see if the workaround is feasible for your current situation.
In the examples the hostname is unresolvedhost.net and the IP is 10.20.30.40.
Try this API call at the command line:
curl -k -X GET --resolve unresolvedhost.net:9001:10.20.30.40 https://unresolvedhost.net:9001/services/
or
curl -k -X GET -H "Host: unresolvedhost.net" https://10.20.30.20:9001/services/
If this works, in your Talend component that makes the API call, go to "Advanced settings" or "Headers" table, add a row with Key: Host and Value: The hostname that matches your SSL certificate (e.g. unresolvedhost.net)
This will instruct Talend to send the correct Host header, which most HTTP clients (including Java's HttpClient) will also use as the SNI value during the TLS handshake.
The SNI enforcement is there for a security reason. With the 2025-02 patch, the Jetty components on Talend Runtime Server resolved a CVE security issue where they allowed a hostname to connect to a server that doesn't match the hostname in the server's TLS certificate.
Certificates require the URI not to be localhost or an IP address, and to have at least one dot, so a fully qualified domain name is best.
A third-party certificate was configured in the Qlik Sense Proxy, but is not being used.
The connection is not private" NET::ERR_CERT_COMMON_NAME_INVALID may be displayed on HUB access.
Qlik Sense Enterprise on Windows uses self-signed and self-generated certificates to protect communication between services, as well as user web traffic to the hub and management console. It is possible to use a third-party-issued SSL certificate to protect client web traffic. Using the self-signed certificate will cause a certificate warning to be displayed in the web browser (such as Google Chrome or Internet Explorer).
If the third-party certificate for the Qlik Sense Proxy Service is not fully compatible with Qlik Sense or it does not have the correct attributes and cyphers, the Qlik Sense Repository Service will revert to using the default certificates. The following error may occur in the Proxy Security logs:
Example: C:\ProgramData\Qlik\Sense\Log\Proxy\Trace\HOSTNAME_Security_Proxy.txt
No private key found for certificate 'CN=qliksense.domain.com' ([CERTIFICATE THUMBPRINT HERE]) Couldn't find a valid ssl certificate with thumbprint [CERTIFICATE THUMBPRINT HERE] Reverting to default Qlik Sense SSLCertificate Set certificate 'CN=qliksenseserver1.domain.com' ([CERTIFICATE THUMBPRINT HERE]) as SSL certificate presented to browser
In order for Qlik Sense Enterprise to correctly recognize the third-party certificate as valid, the certificate will have to meet the following requirements:
Note: Root and Intermediate CA certificates need to be correctly installed. Should any be missing, Qlik Sense proxy will not use the server certificate and will revert back to using the self-signed certificate instead.
Certificates that are known to work well with Qlik Sense have the following attributes:
How to: Change the certificate used by the Qlik Sense Proxy to a custom third party certificate
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
Creating a Qlik Sense Client-Managed connection | Migration Center Help documents all steps needed to create a Qlik Sense Client-Managed connection to the Qlik Analytics Migration Tool.
As a part of the System Requirements (System requirements | Migration Center Help), Qlik advises that the Qlik Sense Proxy service must have a valid third-party certificate.
This article explains the process to follow if no third-party certificate is available; for example, when setting up a test connection in your UAT or test environment. For this example, we will be using the self-signed certificate used by Qlik Sense.
The first challenge we need to overcome is the Not Secure alert when accessing Qlik Sense:
Creating a Qlik Sense Client-Managed connection | Migration Center Help
To establish a connection to the Qlik Analytics Migration Tool in this example, we will be using Method 2 of the recommended steps: Create a virtual proxy using the tool | help.qlik.com.
Is it possible to migrate users and data connections from one Qlik Cloud Analytics tenant to another?
You cannot migrate users and data connections from an existing tenant to a newly purchased tenant.
The following will need to be done:
What about apps and scripts?
Apps can be migrated from one tenant to another using the following Qlik CLI automation: Migrate apps between Qlik Cloud tenants
This tutorial is not exhaustive, and does not migrate other resources such as spaces, automations, data alerts, subscriptions, notes, etc. Qlik offers solutions via Qlik Professional Services for complete tenant to tenant migrations.
For scripts, follow the process of exporting them manually from the old tenant and then importing them to the new tenant. See Exporting scripts.
To make the process easier for you, Qlik's customer support team can link the newly purchased tenant license to a trial tenant, and you can continue to use the trial tenant. The trial tenant will be updated to a Standard, Premium, or Enterprise version after linking the license (depending on which package was purchased).
Do you need iterative planning and support assistance?
If you're looking to perform a manual transfer but need assistance with iterative planning or direct engagement by Qlik, our Professional Services are ready to assist.
Qlik Sense Enterprise on Windows can be set up with a central node and multiple rim nodes. See Installing a Qlik Sense rim node.
To remove a rim node at any point after setup:
It is now safe to uninstall the Qlik Sense services or decommission the server. When uninstalling, ensure that you select the Remove Qlik Sense certificates and data folders option.
While Qlik Cloud provides robust data connectivity options through the Data Movement Gateway, some organizations require additional controls to restrict access to the Qlik Cloud Talend platform itself, not only to data connections.
While Qlik Cloud does not currently support full tenant-level access restriction via PrivateLink, it does offer:
This article outlines these available options and limitations for securing tenant access at the platform level.
Content
Yes. Qlik Cloud supports IP allowlisting through Web Integrations, which can be configured to restrict access to the tenant based on specific IP addresses.
See Managing web integrations for details.
Qlik Talend Data Integration supports private connections for tenant-level access. Does Qlik Cloud support a similar, solution, such as Azure or AWS PrivateLink?
No, Qlik Cloud does not support Azure PrivateLink for tenant-level access in the same way Talend Cloud does.
Qlik Cloud offers several security features for tenant access:
See Securing the system.
When using the Data Movement Gateway, Qlik Cloud ensures secure communication through a multi-step cryptographic process:
This architecture ensures that all data movement operations are secure, authenticated, and encrypted end-to-end.
If full tenant isolation via PrivateLink is a critical requirement, please submit a feature request via Qlik Ideation.
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.
Node.js comes bundled with Qlik Sense Enterprise on Windows. Its version depends on the Qlik Sense released currently installed.
You can verify the version of any of the third-party integrations Qlik Sense makes use of by:
https://qlikserver.domain.local/api/about/v1/thirdParty
You may want to upgrade node.js, specifically in response to a security vulnerability. To do so, upgrade Qlik Sense Enterprise on Windows. When upgrading Qlik Sense, the currently installed node.exe will be replaced with the version Qlik Sense comes bundled with at this release.
Installing Qlik Sense installs node.exe side-by-side in the following location: C:\Program Files\Qlik\Sense\ServiceDispatcher\Node.
If you install node.js manually it will typically be installed in C:\Program Files\nodejs and the Windows environment variable will point to this location by default (i.e. running node -v to get the version will result in providing the version of node found in C:\Program Files\nodejs).
As Qlik Sense will not register any Windows environment variable for node.js, it will not tamper with any settings affecting already installed node.js instances. Therefore it is safe to upgrade your separate instance of Node.js.
Third-party and middleware software integrated with Qlik Sense Enterprise on Windows
Qlik Direct Access Gateway (DAG) is shown as disconnected.
The Windows server's time lags behind the Qlik Cloud tenant's timezone.
Address the time difference by aligning the Windows server's clock. If necessary, align it to a standard NTP service.
Misaligned time. Without alignment, Qlik Direct Access Gateway will disconnect.
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
Leasing a license to the QlikView Desktop client with a custom user fails.
To set up QlikView to lease a license to a custom user, allow license leasing for DMS mode:
If adding SupportLeaseLicenseForDMSMode=1 does not work:
QV-24037
When creating a Log Stream Staging task in Qlik Replicate, Qlik Enterprise Manager (QEM) may report an Express license restriction:
Express license: Running a task with 'Log Stream Staging' is not supported [1021616]
This can happen if the wrong license was registered in Qlik Enterprise Manager. Checking and re-registering the correct license in Qlik Enterprise Manager fixes the problem.
To resolve this issue, re-register the correct Replication Management license in Qlik Enterprise Manager (QEM):
Qlik Enterprise Manager maintains its own licenses for different modules (Replication Management and Replication Analytics). In this case, the incorrect license was applied under the Replication Management module for the prod Qlik Replicate server. As a result, Qlik Enterprise Manager interpreted the environment as running with an Express license.
A deployed 8.0.1 Talend Administration Center instance is bundled with Apache Tomcat 9.0.91. This Tomcat version has been flagged as being impacted by CVE-2025-24813.
At this time, CVE-2025-24813 does not apply to the Talend Administration Center (TAC) webapp. The reason Talend Administration Center is not impacted at this time, is because Tomcat installed with Talend Administration Center has disabled the "Writes enabled for the default servlet" option (disabled by default); A prerequisite for being suspectable to an attack would be to have that setting enabled.
While the Talend Administration Center webapp itself is not impacted by the CVE, if users desire to remove those vulnerable jars removed from security scans (whether due to preference, security audit, or other considerations), users have the following options to pursue:
Please note if users plan to upgrade Talend Administration Center from TPS-5552 or earlier (Using Tomcat 9) to QTAC-969 or higher for TAC 8.0, the recommended path would be to deploy both Apache Tomcat 10.1.40 (or higher) and Java 17 to address this release. (One recommended option is to completely reinstall Tomcat & Talend Administration Center with the new installer and point to the new DB).
If users manually deploy Tomcat 10.1.40 (or a later version) alongside the Talend Administration Center to an instance, and wish to verify that the aforementioned flag(s) are disabled, kindly inspect the "web.xml" file located in (<Root Folder>/apache-tomcat/conf). Proceed to approximately lines 124-135, and examine the following configuration for the "org.apache.catalina.servlets.DefaultServlet":
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>
org.apache.catalina.servlets.DefaultServlet
</servlet-class>
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1<load-on-startup>
</servlet>
The example shown above illustrates that the value is set to "false", signifying that it is write-enabled. If users want that functionality disabled, change the "param-value" flag to false, save the changes, and subsequently restart Tomcat (either via the start/stop bat/sh script, or with the service).
QTAC-918