<?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 Re: Max Parallel Sessions Exceeded qlik engine api in Integration, Extension &amp; APIs</title>
    <link>https://community.qlik.com/t5/Integration-Extension-APIs/Max-Parallel-Sessions-Exceeded-qlik-engine-api/m-p/1815413#M15103</link>
    <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/126177"&gt;@GustavLindstrom&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For non core-based licenses, there is a session limit of 5 sessions max per 5 minutes.&lt;BR /&gt;Even if you close the session, you won't be able to start a new one before 5 minutes.&lt;BR /&gt;&lt;BR /&gt;What you need to do in your script is fetch the session cookie you get back from Qlik Sense on your first request and then reuse this session cookie to reuse the same session for subsequent requests.&lt;/P&gt;</description>
    <pubDate>Wed, 16 Jun 2021 09:22:28 GMT</pubDate>
    <dc:creator>Damien_V</dc:creator>
    <dc:date>2021-06-16T09:22:28Z</dc:date>
    <item>
      <title>Max Parallel Sessions Exceeded qlik engine api</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Max-Parallel-Sessions-Exceeded-qlik-engine-api/m-p/1815404#M15102</link>
      <description>&lt;P&gt;I'm running a python script to extract the script code from Qlik Sense apps through the Engine json API. After a few runs I get error&amp;nbsp;Max Parallel Sessions Exceeded. I create a new web socket for every app (seams to be the only way to open a new app) and the sessions don't seam to end when I close the Web socket. Any help would be appreciated.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;get_scripts&lt;/SPAN&gt;(app_ids&lt;SPAN&gt;, &lt;/SPAN&gt;header_user):&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;   count = &lt;SPAN&gt;0&lt;BR /&gt;&lt;/SPAN&gt;   app_scripts = []&lt;BR /&gt;   &lt;SPAN&gt;for &lt;/SPAN&gt;app_id &lt;SPAN&gt;in &lt;/SPAN&gt;app_ids:&lt;BR /&gt;      ws = websocket.create_connection(&lt;SPAN&gt;"wss://localhost/jwt/app/{}"&lt;/SPAN&gt;.format(app_id)&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;sslopt&lt;/SPAN&gt;={&lt;SPAN&gt;"cert_reqs"&lt;/SPAN&gt;: ssl.CERT_NONE}&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;header&lt;/SPAN&gt;=header_user)&lt;BR /&gt;      call_id = &lt;SPAN&gt;0&lt;BR /&gt;&lt;/SPAN&gt;      ws.send(json.dumps({&lt;BR /&gt;         &lt;SPAN&gt;"method"&lt;/SPAN&gt;: &lt;SPAN&gt;"OpenDoc"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;         &lt;SPAN&gt;"handle"&lt;/SPAN&gt;: -&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;         &lt;SPAN&gt;"params"&lt;/SPAN&gt;: [&lt;BR /&gt;            &lt;SPAN&gt;"{}"&lt;/SPAN&gt;.format(app_id)&lt;BR /&gt;         ]&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;         &lt;SPAN&gt;"outKey"&lt;/SPAN&gt;: -&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;         &lt;SPAN&gt;"id"&lt;/SPAN&gt;: &lt;SPAN&gt;2&lt;BR /&gt;&lt;/SPAN&gt;      }))&lt;BR /&gt;      &lt;SPAN&gt;while &lt;/SPAN&gt;call_id &amp;lt; &lt;SPAN&gt;2&lt;/SPAN&gt;:&lt;BR /&gt;         result = ws.recv()&lt;BR /&gt;         y = json.loads(result)&lt;BR /&gt;         &lt;SPAN&gt;try&lt;/SPAN&gt;:&lt;BR /&gt;            call_id = y[&lt;SPAN&gt;"id"&lt;/SPAN&gt;]&lt;BR /&gt;         &lt;SPAN&gt;except&lt;/SPAN&gt;:&lt;BR /&gt;            &lt;SPAN&gt;print&lt;/SPAN&gt;(&lt;SPAN&gt;""&lt;/SPAN&gt;)&lt;BR /&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;      ws.send(json.dumps({&lt;BR /&gt;         &lt;SPAN&gt;"handle"&lt;/SPAN&gt;: &lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;         &lt;SPAN&gt;"method"&lt;/SPAN&gt;: &lt;SPAN&gt;"GetScript"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;         &lt;SPAN&gt;"params"&lt;/SPAN&gt;: {}&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;         &lt;SPAN&gt;"outKey"&lt;/SPAN&gt;: -&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;         &lt;SPAN&gt;"id"&lt;/SPAN&gt;: &lt;SPAN&gt;3&lt;BR /&gt;&lt;/SPAN&gt;      }))&lt;BR /&gt;&lt;BR /&gt;      &lt;SPAN&gt;while &lt;/SPAN&gt;call_id &amp;lt; &lt;SPAN&gt;3&lt;/SPAN&gt;:&lt;BR /&gt;         result = ws.recv()&lt;BR /&gt;         y = json.loads(result)&lt;BR /&gt;         &lt;SPAN&gt;print&lt;/SPAN&gt;(y)&lt;BR /&gt;         &lt;SPAN&gt;#print(y)&lt;BR /&gt;&lt;/SPAN&gt;         &lt;SPAN&gt;try&lt;/SPAN&gt;:&lt;BR /&gt;            call_id = y[&lt;SPAN&gt;"id"&lt;/SPAN&gt;]&lt;BR /&gt;         &lt;SPAN&gt;except&lt;/SPAN&gt;:&lt;BR /&gt;            &lt;SPAN&gt;print&lt;/SPAN&gt;(&lt;SPAN&gt;""&lt;/SPAN&gt;)&lt;BR /&gt;         &lt;SPAN&gt;if &lt;/SPAN&gt;call_id == &lt;SPAN&gt;3&lt;/SPAN&gt;:&lt;BR /&gt;            result = y[&lt;SPAN&gt;'result'&lt;/SPAN&gt;]&lt;BR /&gt;            script = result[&lt;SPAN&gt;'qScript'&lt;/SPAN&gt;]&lt;BR /&gt;            &lt;SPAN&gt;print&lt;/SPAN&gt;(app_id)&lt;BR /&gt;            &lt;SPAN&gt;print&lt;/SPAN&gt;(call_id)&lt;BR /&gt;            &lt;SPAN&gt;print&lt;/SPAN&gt;(script[&lt;SPAN&gt;0&lt;/SPAN&gt;:&lt;SPAN&gt;100&lt;/SPAN&gt;])&lt;BR /&gt;            app_scripts.append([app_id&lt;SPAN&gt;, &lt;/SPAN&gt;script])&lt;BR /&gt;      count = count + &lt;SPAN&gt;1&lt;BR /&gt;&lt;/SPAN&gt;      ws.close()&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;   &lt;SPAN&gt;return &lt;/SPAN&gt;app_scripts&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 16 Jun 2021 08:52:42 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Max-Parallel-Sessions-Exceeded-qlik-engine-api/m-p/1815404#M15102</guid>
      <dc:creator>GustavLindstrom</dc:creator>
      <dc:date>2021-06-16T08:52:42Z</dc:date>
    </item>
    <item>
      <title>Re: Max Parallel Sessions Exceeded qlik engine api</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Max-Parallel-Sessions-Exceeded-qlik-engine-api/m-p/1815413#M15103</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/126177"&gt;@GustavLindstrom&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For non core-based licenses, there is a session limit of 5 sessions max per 5 minutes.&lt;BR /&gt;Even if you close the session, you won't be able to start a new one before 5 minutes.&lt;BR /&gt;&lt;BR /&gt;What you need to do in your script is fetch the session cookie you get back from Qlik Sense on your first request and then reuse this session cookie to reuse the same session for subsequent requests.&lt;/P&gt;</description>
      <pubDate>Wed, 16 Jun 2021 09:22:28 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Max-Parallel-Sessions-Exceeded-qlik-engine-api/m-p/1815413#M15103</guid>
      <dc:creator>Damien_V</dc:creator>
      <dc:date>2021-06-16T09:22:28Z</dc:date>
    </item>
    <item>
      <title>Re: Max Parallel Sessions Exceeded qlik engine api</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Max-Parallel-Sessions-Exceeded-qlik-engine-api/m-p/1815672#M15110</link>
      <description>&lt;P&gt;Hi Damien thanks for replying&lt;/P&gt;&lt;P&gt;If I print&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;print&lt;/SPAN&gt;(ws.headers)&lt;/PRE&gt;&lt;P&gt;I get this&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;{&lt;SPAN&gt;'set-cookie'&lt;/SPAN&gt;: &lt;SPAN&gt;'X-Qlik-Session-jwt=35cd253e-9e76-4cb2-a42e-75f0ed20c160; Path=/; HttpOnly; SameSite=Lax; Secure'&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;Should I put &amp;nbsp;&lt;SPAN&gt;X-Qlik-Session-jwt&amp;nbsp;35cd253e-9e76-4cb2-a42e-75f0ed20c160 in the header for the next websocket.create_connection?&lt;/SPAN&gt;&amp;nbsp;How should the header for the next connection look like?&lt;/P&gt;&lt;P&gt;Best regards&amp;nbsp;&lt;/P&gt;&lt;P&gt;Gustav&lt;/P&gt;</description>
      <pubDate>Thu, 17 Jun 2021 07:34:39 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Max-Parallel-Sessions-Exceeded-qlik-engine-api/m-p/1815672#M15110</guid>
      <dc:creator>GustavLindstrom</dc:creator>
      <dc:date>2021-06-17T07:34:39Z</dc:date>
    </item>
    <item>
      <title>Re: Max Parallel Sessions Exceeded qlik engine api</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Max-Parallel-Sessions-Exceeded-qlik-engine-api/m-p/1816073#M15115</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/126177"&gt;@GustavLindstrom&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Yes, that's what you get as &lt;STRONG&gt;response&lt;/STRONG&gt; headers on your first request, then you should pass it in the &lt;STRONG&gt;request&lt;/STRONG&gt; headers on the second request, I believe this should be the syntax:&lt;/P&gt;&lt;PRE&gt;{&lt;SPAN&gt;'Cookie'&lt;/SPAN&gt;: &lt;SPAN&gt;'X-Qlik-Session-jwt=35cd253e-9e76-4cb2-a42e-75f0ed20c160;}&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;It's similar to this enigma.js example&lt;BR /&gt;&lt;A href="https://community.qlik.com/t5/Knowledge-Base/Qlik-Sense-Repository-API-Engine-API-Enigma-js-example-with-JWT/ta-p/1717897" target="_blank"&gt;https://community.qlik.com/t5/Knowledge-Base/Qlik-Sense-Repository-API-Engine-API-Enigma-js-example-with-JWT/ta-p/1717897&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 18 Jun 2021 12:47:38 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Max-Parallel-Sessions-Exceeded-qlik-engine-api/m-p/1816073#M15115</guid>
      <dc:creator>Damien_V</dc:creator>
      <dc:date>2021-06-18T12:47:38Z</dc:date>
    </item>
    <item>
      <title>Re: Max Parallel Sessions Exceeded qlik engine api</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Max-Parallel-Sessions-Exceeded-qlik-engine-api/m-p/2412335#M19767</link>
      <description>&lt;P&gt;Hi Damien,&lt;/P&gt;
&lt;P&gt;When establishing a direct connection to the engine using the following configuration:&lt;/P&gt;
&lt;P&gt;WebSocket Secure connection to: &lt;CODE&gt;wss://&amp;lt;Server&amp;gt;:4747/app/&amp;lt;AppId&amp;gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Certificates configuration:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;certs = ({"ca_certs": ca, "certfile": cer, "keyfile": key, "cert_reqs":ssl.CERT_REQUIRED,"server_side": False})&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;User specified as &lt;/SPAN&gt;&lt;CODE&gt;sa_api&lt;/CODE&gt;&lt;SPAN&gt; with the following header:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;header = {'X-Qlik-User: UserDirectory=internal; UserId=sa_api'}&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Is there a limitation on the number of connections that can be opened same time parallely ?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 30 Jan 2024 06:59:19 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Max-Parallel-Sessions-Exceeded-qlik-engine-api/m-p/2412335#M19767</guid>
      <dc:creator>fabdulazeez</dc:creator>
      <dc:date>2024-01-30T06:59:19Z</dc:date>
    </item>
    <item>
      <title>Re: Max Parallel Sessions Exceeded qlik engine api</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Max-Parallel-Sessions-Exceeded-qlik-engine-api/m-p/2543597#M22787</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/29425"&gt;@Damien_V&lt;/a&gt;&amp;nbsp;! Hope all is good!&amp;nbsp;&lt;/P&gt;&lt;P&gt;We're seeing massive issues in running into the&amp;nbsp;MaxParallelSessionsExceeded error on our QSE Nov 2024, when working against the Engine API and multiple apps.&amp;nbsp;&lt;/P&gt;&lt;P&gt;We're re-using session cookie caching, but still run into this global limitation. Is this configurable in any way? It's basically not possible to build server-wide integrations with this limitation in place, especially not since the limitation seems to be hard coded.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;We are querying several apps as part of operations, and there is basically no way of doing this without hitting the limit, if we want to retain user permissions/authorization.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 24 Feb 2026 12:31:45 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Max-Parallel-Sessions-Exceeded-qlik-engine-api/m-p/2543597#M22787</guid>
      <dc:creator>StefanBackstrand</dc:creator>
      <dc:date>2026-02-24T12:31:45Z</dc:date>
    </item>
    <item>
      <title>Re: Max Parallel Sessions Exceeded qlik engine api</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Max-Parallel-Sessions-Exceeded-qlik-engine-api/m-p/2543972#M22788</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/14150"&gt;@StefanBackstrand&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;I haven't tested that with multiple apps, but I think you're probably right that the method may not work when connecting to different apps. I can't think of an alternative in that case unfortunately.&lt;/P&gt;
&lt;P&gt;That's probably something to be logged under Ideation.&lt;/P&gt;</description>
      <pubDate>Mon, 02 Mar 2026 04:05:18 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Max-Parallel-Sessions-Exceeded-qlik-engine-api/m-p/2543972#M22788</guid>
      <dc:creator>Damien_V</dc:creator>
      <dc:date>2026-03-02T04:05:18Z</dc:date>
    </item>
  </channel>
</rss>

