Unable to retire article through Table APIIssue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } We are unable to retire knowledge article through Rest API. It showing "ACL Exception Update Failed due to security constraints" 403 Forbidden error. We want to check how knowledge article can be retired through API as integration team wants to use this API. Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } All releases Cause<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Two ACLs are failing while trying to update a knowledge article's workflow_state field from Table API Failed ACLs: https://<INSTANCE NAME>.service-now.com/sys_security_acl.do?sys_id=20cb513cd71221004792a1737e6103dc https://<INSTANCE NAME>.service-now.com/sys_security_acl.do?sys_id=20cb513cd71221004792a1737e6103dc Notice that both the ACLs are calling the canWrite function in KBKnowledge script include with kbKnowledge.canWrite KbVersioningSNC script include: https://<INSTANCE NAME>.service-now.com/sys_script_include.do?sys_id=e88483e0db122200a042f278f0b8f5d0 Where the script is failing -Function name: canWrite Line number 678 - return ((this.hasAnyElevatedAccess(current) || this.isMemberOfValidGroup(current,this.OWNERSHIP_GROUP)) && this.getEditableFields()!=''); The this.getEditableFields()!=' part of the above line is failing This function is basically checking if minor edits to the published article is allowed by verifying if the "glide.knowman.versioning.enable_minor_edits" system property is se to true If glide.knowman.versioning.enable_minor_edits is set to true, it will then proceed to check which field are allowed to be edited for a published article in the "glide.knowman.versioning.minor_edit_fields" system property Link to the two properties: https://<INSTANCE NAME>.service-now.com/sys_properties_list.do?sysparm_query=nameSTARTSWITHglide.knowman.versioning.enable_minor_edits%5EORnameSTARTSWITHglide.knowman.versioning.minor_edit_fields&sysparm_first_row=1&sysparm_view= Probable question: What is the difference between using the "Retire" UI action and updating a published article from the table API? Answer: The Retire UI action uses the "retireKnowledgeRecord" function of the KnowledgeUIACtions script include. This function triggers the retire flow/workflow for the knowledge article rather than directly updating the workflow_state field. Please note that even while using the "Knowledge - Instant Retire" flow, it is necessary for this flow to trigger to ensure all dependent records of the knowledge article are updated as expected once an article is retired. Making a direct update to the workflow_state would leave the dependant articles to corrupt Line 7: new global.KnowledgeUIAction().retireKnowledgeRecord(current); Retire UI action: https://<INSTANCE NAME>.service-now.com/sys_ui_action.do?sys_id=bf63c426c30031000096dfdc64d3ae2c https://<INSTANCE NAME>.service-now.com/sys_ui_action.do?sys_id=4c605b34771221102b76b1b0af5a9957 Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } The ACLs, script includes, as well as the system properties involved in ensuring this OOB behavior are all high-risk files that must not be customized. However, for testing purposes, I updated the "glide.knowman.versioning.enable_minor_edits" property to true and added "workflow_state" in the value of the "glide.knowman.versioning.minor_edit_fields" property, and I was able to update the article's workflow_state field from the table API as expected.It is highly recommended not to retire articles from Table API but rather use the "Retire" UI action on the form to ensure that the flow/workflow attached to the article is triggered and the article is retired without leaving any orphaned dependencies