User is unable to publish and replace a specific app 'x' in the stream. Except 'x', all other apps in stream replaceable
Article Number: 000051565 | Last Modified: 2018/12/10
Description
User is unable to publish and replace a specific app 'x' in the stream. Except 'x', all other apps in stream replaceable. Owner of the app is the same person trying to replace the app. No app-specific rule present. Error 'Insufficient privileges' happens. Environment Details: Qlik Sense Enterprise
Cause
When you create an app with sheets etc. and duplicate this app the sheets in the duplicated app will have the same internal “EngineIDs” (you can see these in the database) as they have in the original app (they are only unique within the specific qvf, not in system). If the original app is published and you try to publish/replace that app with a new app the following will happen:
If there are sheets (or other objects) that has the same engineID in both apps there will be an Update operation on those objects in the published app.
If there are sheets (or other objects) that only exist in the new app there will be a Create operation on those objects in the published app.
If there are sheets (or other objects) that has been removed in the new app there will be a Delete operation on those objects in the published app.
If scenario 3 needs to be executed and a sheet needs to be deleted the delete will fail since the user does not have delete privileges. We will be able to publish/replace as long as the sheets that exists in the published app ALSO exist in the app that will replace the currently published one. If objects needs to be deleted the publish operation will fail. This is the reason it sometimes fails and also why it looks very random from a user perspective.
Resolution
'Delete' permission is required for any security rule that controls replacing the app in the stream to fix this. Please set this permission in the QMC context only. One way of testing is to add below custom rule for that specific user.
Example: Filter : App.Objects Actions: ALL Condition: resource.App.HasPrivilege("publish") Context: Only QMC
Get Answers
Find Answers
Qlik Community
Collaborate with over 60,000 Qlik technologists and members around the world to get answers to your questions, and maximize success.
Experiencing a serious issue, please contact us by phone. For Data Integration related issues please refer to your onboarding documentation for current phone number.