<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Incomplete Metadata from QlikSense API for Duplicated Apps in App Development</title>
    <link>https://community.qlik.com/t5/App-Development/Incomplete-Metadata-from-QlikSense-API-for-Duplicated-Apps/m-p/2550860#M110409</link>
    <description>&lt;H2&gt;Problem Description&lt;/H2&gt;
&lt;P&gt;We are experiencing an issue where QlikSense apps created using the &lt;STRONG&gt;"Duplicate" feature&lt;/STRONG&gt; return incomplete or empty metadata when accessed through the &lt;STRONG&gt;QlikSense Engine Service (port 4747)&lt;/STRONG&gt; via WebSocket connections.&lt;/P&gt;
&lt;H2&gt;How We Access QlikSense&lt;/H2&gt;
&lt;P&gt;We connect to QlikSense Enterprise using:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Connection Method&lt;/STRONG&gt;: WebSocket (wss://)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Port&lt;/STRONG&gt;: 4747 (Qlik Sense Engine Service)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Protocol&lt;/STRONG&gt;: HTTPS/WebSocket&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Purpose&lt;/STRONG&gt;: Extracting app metadata including load scripts, variables, sheets, and object definitions&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Specific Issues Observed&lt;/H2&gt;
&lt;H3&gt;1.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Empty Variables Metadata&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;When retrieving app variables from duplicated apps:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Expected Structure:&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV class="sc-fmZSGO kDQQWL" data-partially-visible="false"&gt;
&lt;DIV class="sc-gwsNht kduIQU"&gt;
&lt;PRE class="shiki github-light" tabindex="0"&gt;&lt;CODE class="hljs language-json"&gt;&lt;SPAN class="line"&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN&gt;  "qItems"&lt;/SPAN&gt;&lt;SPAN&gt;: [&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN&gt;    {&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN&gt;      "qId"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"variable-id"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN&gt;      "qName"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"VariableName"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN&gt;      "qDefinition"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"expression"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN&gt;    }&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN&gt;  ]&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;DIV class="sc-hKDTPf fzHMvL"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;STRONG&gt;Actual Response from Duplicated Apps:&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV class="sc-fmZSGO kDQQWL" data-partially-visible="false"&gt;
&lt;DIV class="sc-gwsNht kduIQU"&gt;
&lt;PRE class="shiki github-light" tabindex="0"&gt;&lt;CODE class="hljs language-json"&gt;&lt;SPAN class="line"&gt;&lt;SPAN&gt;{}&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;DIV class="sc-hKDTPf fzHMvL"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;STRONG&gt;Impact:&lt;/STRONG&gt; Cannot retrieve any variable definitions from the app, even though variables are visible in the QlikSense Hub UI.&lt;/P&gt;
&lt;H3&gt;2.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Empty Load Script&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;When retrieving the load script from duplicated apps:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Expected:&lt;/STRONG&gt; The complete load script with data loading logic, transformations, and connection strings.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Actual Response from Duplicated Apps:&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV class="sc-fmZSGO kDQQWL" data-partially-visible="false"&gt;
&lt;DIV class="sc-gwsNht kduIQU"&gt;
&lt;PRE class="shiki github-light" tabindex="0"&gt;&lt;CODE class="hljs language-json"&gt;&lt;SPAN class="line"&gt;&lt;SPAN&gt;{}&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;DIV class="sc-hKDTPf fzHMvL"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;STRONG&gt;Impact:&lt;/STRONG&gt; Without the load script, we cannot understand the app's data sources, transformations, or data flow logic.&lt;/P&gt;
&lt;H3&gt;3.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Missing Object Metadata&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;When retrieving sheets, dimensions, measures, and master objects, we observe:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Empty or missing JSON responses&lt;/LI&gt;
&lt;LI&gt;Incomplete object definitions&lt;/LI&gt;
&lt;LI&gt;Missing visualization metadata&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Even though these objects are visible and functional in the QlikSense Hub.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Environment&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;QlikSense Enterprise on Windows (QSEoW) — November 2025, version 14.254.6&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Accessing via QMC / browser only&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;More Details :&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;When using the built-in &lt;STRONG&gt;Duplicate&lt;/STRONG&gt; function on a QlikSense app, certain copies (in my case the 10th duplicate, named &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;TestApp2Copy(10)&lt;/CODE&gt;) return completely empty metadata when accessed via the QlikSense API.&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Specifically, all extracted data files are empty or missing:&lt;/P&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;variables.json&lt;/CODE&gt; contains only &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;{}&lt;/CODE&gt; — no &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;qItems&lt;/CODE&gt; array&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;loadScript.json&lt;/CODE&gt; contains only &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;{}&lt;/CODE&gt;&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;sheets/&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;dimensions/&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;measures/&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;masterObjects/&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;stories/&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;bookmarks/&lt;/CODE&gt; folders are all empty&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;The original app (&lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;TestApp2Copy&lt;/CODE&gt;) and all other copies (&lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;TestApp2Copy(1)&lt;/CODE&gt; through &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;TestApp2Copy(9)&lt;/CODE&gt;, and copies named without parentheses like &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;TestApp2Copy1&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;TestApp2Copy2&lt;/CODE&gt;, etc.) return full, valid metadata correctly. And If I renamed the App name to&amp;nbsp;&lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;TestApp2Copy10 &lt;/CODE&gt;&amp;nbsp;then that will work with the new name (OR) even if I created another App&lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;TestApp2Copy10&lt;/CODE&gt;&amp;nbsp;then Both&amp;nbsp;&lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;TestApp2Copy(10) and&amp;nbsp;TestApp2Copy10&lt;/CODE&gt;&amp;nbsp;will works&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Steps to Reproduce&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Export any working App&amp;nbsp; eg: &lt;STRONG&gt;TestApp2Copy.qvf&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Import it as &lt;STRONG&gt;Duplicate &lt;/STRONG&gt;&amp;nbsp; First Try to name&amp;nbsp;&lt;STRONG&gt;TestApp2Copy(1) ,&amp;nbsp;TestApp2Copy(2), ....etc&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;The extracted apps will get fails using the API&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Try to rename it to&amp;nbsp;&lt;STRONG&gt;TestApp2Copy1,&amp;nbsp;TestApp2Copy2&amp;nbsp;&lt;/STRONG&gt; it will work, else create another apps&amp;nbsp;&lt;STRONG&gt;TestApp2Copy1,&amp;nbsp;TestApp2Copy2.....&amp;nbsp;&lt;/STRONG&gt;Then Both&amp;nbsp;&lt;STRONG&gt;TestApp2CopyN and (TestApp2Copy(N) will work.&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Observed Behavior&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;The API returns &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;{}&lt;/CODE&gt; for &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;GetVariables&lt;/CODE&gt; and &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;GetScript&lt;/CODE&gt; for the affected app, even though the app appears fully functional in the QlikSense Hub UI (sheets are visible, data loads correctly).&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Renaming the app (removing the &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;(N)&lt;/CODE&gt; suffix) and re-accessing via API returns valid data, suggesting the issue is specific to how the server handles metadata retrieval for apps with parenthesized suffixes at certain indices.&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Expected Behavior&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;The API should return full metadata (variables, load script, sheets, etc.) for all duplicated apps regardless of the copy number or naming convention.&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Questions&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Is there a known issue with the QlikSense Duplicate function returning incomplete metadata for apps at certain copy indices?&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Is there a server-side fix or workaround other than exporting to &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;.qvf&lt;/CODE&gt; and re-importing?&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Does this correlate with any known behavior related to the &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;(N)&lt;/CODE&gt; naming pattern used by the Duplicate function?&lt;/LI&gt;
&lt;/OL&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 08 Jun 2026 12:53:18 GMT</pubDate>
    <dc:creator>prharish</dc:creator>
    <dc:date>2026-06-08T12:53:18Z</dc:date>
    <item>
      <title>Incomplete Metadata from QlikSense API for Duplicated Apps</title>
      <link>https://community.qlik.com/t5/App-Development/Incomplete-Metadata-from-QlikSense-API-for-Duplicated-Apps/m-p/2550860#M110409</link>
      <description>&lt;H2&gt;Problem Description&lt;/H2&gt;
&lt;P&gt;We are experiencing an issue where QlikSense apps created using the &lt;STRONG&gt;"Duplicate" feature&lt;/STRONG&gt; return incomplete or empty metadata when accessed through the &lt;STRONG&gt;QlikSense Engine Service (port 4747)&lt;/STRONG&gt; via WebSocket connections.&lt;/P&gt;
&lt;H2&gt;How We Access QlikSense&lt;/H2&gt;
&lt;P&gt;We connect to QlikSense Enterprise using:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Connection Method&lt;/STRONG&gt;: WebSocket (wss://)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Port&lt;/STRONG&gt;: 4747 (Qlik Sense Engine Service)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Protocol&lt;/STRONG&gt;: HTTPS/WebSocket&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Purpose&lt;/STRONG&gt;: Extracting app metadata including load scripts, variables, sheets, and object definitions&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Specific Issues Observed&lt;/H2&gt;
&lt;H3&gt;1.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Empty Variables Metadata&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;When retrieving app variables from duplicated apps:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Expected Structure:&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV class="sc-fmZSGO kDQQWL" data-partially-visible="false"&gt;
&lt;DIV class="sc-gwsNht kduIQU"&gt;
&lt;PRE class="shiki github-light" tabindex="0"&gt;&lt;CODE class="hljs language-json"&gt;&lt;SPAN class="line"&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN&gt;  "qItems"&lt;/SPAN&gt;&lt;SPAN&gt;: [&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN&gt;    {&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN&gt;      "qId"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"variable-id"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN&gt;      "qName"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"VariableName"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN&gt;      "qDefinition"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"expression"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN&gt;    }&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN&gt;  ]&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;DIV class="sc-hKDTPf fzHMvL"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;STRONG&gt;Actual Response from Duplicated Apps:&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV class="sc-fmZSGO kDQQWL" data-partially-visible="false"&gt;
&lt;DIV class="sc-gwsNht kduIQU"&gt;
&lt;PRE class="shiki github-light" tabindex="0"&gt;&lt;CODE class="hljs language-json"&gt;&lt;SPAN class="line"&gt;&lt;SPAN&gt;{}&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;DIV class="sc-hKDTPf fzHMvL"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;STRONG&gt;Impact:&lt;/STRONG&gt; Cannot retrieve any variable definitions from the app, even though variables are visible in the QlikSense Hub UI.&lt;/P&gt;
&lt;H3&gt;2.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Empty Load Script&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;When retrieving the load script from duplicated apps:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Expected:&lt;/STRONG&gt; The complete load script with data loading logic, transformations, and connection strings.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Actual Response from Duplicated Apps:&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV class="sc-fmZSGO kDQQWL" data-partially-visible="false"&gt;
&lt;DIV class="sc-gwsNht kduIQU"&gt;
&lt;PRE class="shiki github-light" tabindex="0"&gt;&lt;CODE class="hljs language-json"&gt;&lt;SPAN class="line"&gt;&lt;SPAN&gt;{}&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;DIV class="sc-hKDTPf fzHMvL"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;STRONG&gt;Impact:&lt;/STRONG&gt; Without the load script, we cannot understand the app's data sources, transformations, or data flow logic.&lt;/P&gt;
&lt;H3&gt;3.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Missing Object Metadata&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;When retrieving sheets, dimensions, measures, and master objects, we observe:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Empty or missing JSON responses&lt;/LI&gt;
&lt;LI&gt;Incomplete object definitions&lt;/LI&gt;
&lt;LI&gt;Missing visualization metadata&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Even though these objects are visible and functional in the QlikSense Hub.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Environment&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;QlikSense Enterprise on Windows (QSEoW) — November 2025, version 14.254.6&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Accessing via QMC / browser only&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;More Details :&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;When using the built-in &lt;STRONG&gt;Duplicate&lt;/STRONG&gt; function on a QlikSense app, certain copies (in my case the 10th duplicate, named &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;TestApp2Copy(10)&lt;/CODE&gt;) return completely empty metadata when accessed via the QlikSense API.&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Specifically, all extracted data files are empty or missing:&lt;/P&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;variables.json&lt;/CODE&gt; contains only &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;{}&lt;/CODE&gt; — no &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;qItems&lt;/CODE&gt; array&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;loadScript.json&lt;/CODE&gt; contains only &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;{}&lt;/CODE&gt;&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;sheets/&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;dimensions/&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;measures/&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;masterObjects/&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;stories/&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;bookmarks/&lt;/CODE&gt; folders are all empty&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;The original app (&lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;TestApp2Copy&lt;/CODE&gt;) and all other copies (&lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;TestApp2Copy(1)&lt;/CODE&gt; through &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;TestApp2Copy(9)&lt;/CODE&gt;, and copies named without parentheses like &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;TestApp2Copy1&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;TestApp2Copy2&lt;/CODE&gt;, etc.) return full, valid metadata correctly. And If I renamed the App name to&amp;nbsp;&lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;TestApp2Copy10 &lt;/CODE&gt;&amp;nbsp;then that will work with the new name (OR) even if I created another App&lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;TestApp2Copy10&lt;/CODE&gt;&amp;nbsp;then Both&amp;nbsp;&lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;TestApp2Copy(10) and&amp;nbsp;TestApp2Copy10&lt;/CODE&gt;&amp;nbsp;will works&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Steps to Reproduce&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Export any working App&amp;nbsp; eg: &lt;STRONG&gt;TestApp2Copy.qvf&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Import it as &lt;STRONG&gt;Duplicate &lt;/STRONG&gt;&amp;nbsp; First Try to name&amp;nbsp;&lt;STRONG&gt;TestApp2Copy(1) ,&amp;nbsp;TestApp2Copy(2), ....etc&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;The extracted apps will get fails using the API&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Try to rename it to&amp;nbsp;&lt;STRONG&gt;TestApp2Copy1,&amp;nbsp;TestApp2Copy2&amp;nbsp;&lt;/STRONG&gt; it will work, else create another apps&amp;nbsp;&lt;STRONG&gt;TestApp2Copy1,&amp;nbsp;TestApp2Copy2.....&amp;nbsp;&lt;/STRONG&gt;Then Both&amp;nbsp;&lt;STRONG&gt;TestApp2CopyN and (TestApp2Copy(N) will work.&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Observed Behavior&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;The API returns &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;{}&lt;/CODE&gt; for &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;GetVariables&lt;/CODE&gt; and &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;GetScript&lt;/CODE&gt; for the affected app, even though the app appears fully functional in the QlikSense Hub UI (sheets are visible, data loads correctly).&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Renaming the app (removing the &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;(N)&lt;/CODE&gt; suffix) and re-accessing via API returns valid data, suggesting the issue is specific to how the server handles metadata retrieval for apps with parenthesized suffixes at certain indices.&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Expected Behavior&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;The API should return full metadata (variables, load script, sheets, etc.) for all duplicated apps regardless of the copy number or naming convention.&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Questions&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Is there a known issue with the QlikSense Duplicate function returning incomplete metadata for apps at certain copy indices?&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Is there a server-side fix or workaround other than exporting to &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;.qvf&lt;/CODE&gt; and re-importing?&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Does this correlate with any known behavior related to the &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;(N)&lt;/CODE&gt; naming pattern used by the Duplicate function?&lt;/LI&gt;
&lt;/OL&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jun 2026 12:53:18 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Incomplete-Metadata-from-QlikSense-API-for-Duplicated-Apps/m-p/2550860#M110409</guid>
      <dc:creator>prharish</dc:creator>
      <dc:date>2026-06-08T12:53:18Z</dc:date>
    </item>
    <item>
      <title>Re: Incomplete Metadata from QlikSense API for Duplicated Apps</title>
      <link>https://community.qlik.com/t5/App-Development/Incomplete-Metadata-from-QlikSense-API-for-Duplicated-Apps/m-p/2550909#M110411</link>
      <description>&lt;P&gt;Could anyone help me on this ?&lt;/P&gt;</description>
      <pubDate>Tue, 09 Jun 2026 04:50:10 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Incomplete-Metadata-from-QlikSense-API-for-Duplicated-Apps/m-p/2550909#M110411</guid>
      <dc:creator>prharish</dc:creator>
      <dc:date>2026-06-09T04:50:10Z</dc:date>
    </item>
    <item>
      <title>Re: Incomplete Metadata from QlikSense API for Duplicated Apps</title>
      <link>https://community.qlik.com/t5/App-Development/Incomplete-Metadata-from-QlikSense-API-for-Duplicated-Apps/m-p/2550937#M110413</link>
      <description>&lt;P&gt;Is this due to the migration of Qliksense&amp;nbsp;from of my &lt;SPAN&gt;November 2025&amp;nbsp; ----&amp;gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;May 2026 ?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Jun 2026 08:38:10 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Incomplete-Metadata-from-QlikSense-API-for-Duplicated-Apps/m-p/2550937#M110413</guid>
      <dc:creator>prharish</dc:creator>
      <dc:date>2026-06-09T08:38:10Z</dc:date>
    </item>
  </channel>
</rss>

