Skip to main content
Announcements
July 15, NEW Customer Portal: Initial launch will improve how you submit Support Cases. READ MORE

Qlik Sense on premise reloads fail with: Warning: Conflict

No ratings
cancel
Showing results for 
Search instead for 
Did you mean: 
Benoit_C
Support
Support

Qlik Sense on premise reloads fail with: Warning: Conflict

Last Update:

Mar 26, 2024 5:58:28 AM

Updated By:

Benoit_C

Created date:

Feb 6, 2023 5:58:10 AM

After upgrading Qlik Sense Enterprise on to Windows May 2022 patch 11 or August 2022 patch 6, reload tasks may be listed as failed even if the script log completes successfully.

The engine logs (Engine\System Service_Engine_TIMESTAMP.log):

WARN QLIKSERVER XXXXX-b9df-48dc-a868-XXXX 20230130T151057.522+0100 12.1386.6.0 Command=Doc::DoSave;Result=409;ResultText=Warning: Conflict 0 0 1111411 QLK QLIKUSER XXXXX-47c2-4ea4-94c2-XXXXXX XXXXX-95f5-46e2-8b92-XXXXX ApplicationQLIK Engine Not available Doc::DoSave Doc::DoSave 409 Object write failed. XXXXXX-b9df-48dc-a868-XXXXX

The repository logs (Repository\Trace log called System_Engine_TIMESTAMP.log):

2072 20230129T193052.695+0100 ERROR QLIKSERVER System.Repository.Repository.Core.Repository.Common.TransactionUtility 185 XXXXX-d7f0-4983-8905-XXXX QLK\QLIKSERVICEUSER Error when committing The custom property value already assigned at 

Environment

Qlik Sense Enterprise on Windows May 2022, August 2022

 

Resolution

Warning: Modifying the Qlik Sense Repository manually is generally not supported by Qlik. Any modifications need to be done with extreme caution. Always back up your Qlik Sense database before committing changes.

This is caused by custom properties being duplicated and injected multiple times. The fix requires these duplicates to be removed.

  1. Back up your Qlik Sense site. See Backup and restore Qlik Sense Enterprise on Windows.
  2. Connect to the QSR Postgres database. See How to connect to the Qlik Sense Enterprise on Windows or Qlik NPrinting PostgreSQL database .
  3. Identify the list of duplicate custom properties. Use the following query:
    SELECT "ID", "Definition_ID", "Value", "App_ID" FROM
    ( SELECT "ID", "Definition_ID", "Value", "App_ID",
    ROW_NUMBER() OVER ( PARTITION BY "Value", "Definition_ID", "App_ID"
    ORDER BY "App_ID" DESC, "ID"
    ) rn
    FROM "CustomPropertyValues"
    ) t1 WHERE rn > 1 AND "App_ID" IS NOT null;

  4. If you found any duplicates in the query above, use the below cleanup script:
    DELETE FROM "CustomPropertyValues"
    WHERE "ID" IN
    ( SELECT "ID" FROM
       ( SELECT "ID", "Definition_ID", "Value", "App_ID",
                ROW_NUMBER() OVER ( PARTITION BY "Value", "Definition_ID", "App_ID"
                                    ORDER BY "App_ID" DESC, "ID"
                                  ) rn
         FROM "CustomPropertyValues"
       ) t1 WHERE rn > 1 AND "App_ID" IS NOT null);​


Cause 

This is caused by a fix QB-9058, which has been introduced in May 2022 Patch 11 and August patch 6:

Qlik Sense: Possible to apply same custom property value more than once to a single app:

Fixed an issue where it was possible via QMC or API request to apply the same custom property value belonging to the same custom property definition more than once to the same Qlik Sense app/qvf.

So from those patch it is no longer possible to have any application with a duplicate custom property.

Duplicate properties will be shown as errors in the Qlik Sense log:

 

The custom property value already assigned

 

The diagnosis script above will also expose duplicate custom properties

 

Internal Investigation ID(s) 

  • QB-21006
  • QB-17917
  • QB-9058
Labels (1)
Comments
Filippo_Nicolussi_P

In case of duplicated custom properties assigned to  Users the above queries needs to be changed using "User_ID" : 

SELECT "ID", "Definition_ID", "Value", "User_ID" FROM
( SELECT "ID", "Definition_ID", "Value", "User_ID",
ROW_NUMBER() OVER ( PARTITION BY "Value", "Definition_ID", "User_ID"
ORDER BY "User_ID" DESC, "ID"
) rn
FROM "CustomPropertyValues"
) t1 WHERE rn > 1 AND "User_ID" IS NOT null;

--- to clean --- 

delete from "CustomPropertyValues"
WHERE "ID" IN
( SELECT "ID" FROM
( SELECT "ID", "Definition_ID", "Value", "User_ID",
ROW_NUMBER() OVER ( PARTITION BY "Value", "Definition_ID", "User_ID"
ORDER BY "User_ID" DESC, "ID"
) rn
FROM "CustomPropertyValues"
) t1 WHERE rn > 1 AND "User_ID" IS NOT null);

 

 

Version history
Last update:
‎2024-03-26 05:58 AM
Updated by: