Catalog Item Approvals Remain "Not Yet Requested" After Australia Upgrade — ITIL Users Affected via Service Portal or NowMobileIssue <!-- /*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: ; } } Symptom:After upgrading an instance to the Australia family release, approval records (sysapproval_approver) created through legacy Workflow-based Catalog Items are assigned the state Not Yet Requested instead of Requested. Approvers can still manually approve the records, but the incorrect state blocks downstream automation that depends on the approval being in the Requested state. Environment: Release: Australia (any patch)Affected users: Non-admin ITIL usersSubmission channels: Service Portal (/service_catalog.do), NowMobile, REST APINot affected: Admin users; Catalog Items using Flow Designer-based approvals Steps to Reproduce: Log in as a non-admin user with the ITIL role (do not use an admin account).Submit a Catalog Item that uses a legacy Workflow with an Approval Coordinator activity via the Service Portal or NowMobile.Navigate to the resulting sysapproval_approver record. Expected Result:The approval record state is Requested, and the workflow progresses normally. Actual Result:The approval record state remains Not Yet Requested. Database logs show no UPDATE following the initial INSERT — the state change is aborted before reaching the database. Symptoms<!-- /*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: ; } } Approval records on sysapproval_approver are created with state Not Yet Requested after a Workflow-based Catalog Item is submitted by an ITIL user.The same Catalog Item submitted by an admin user creates the approval in the correct Requested state.Approvers can manually approve the record despite the incorrect state, but downstream automation that polls for Requested approvals does not trigger.Node logs contain repeated entries of the form:GlideRecord Operation against file 'sysapproval_approver' was aborted by Business Rule 'Cascade Request Approval to Request Item'. Business Rule Stack: Cascade Request Approval to Request Item, Start Workflow, SNC - Set user approvals for group, Check approval state changeINSERT records are observed in e_signature_replay_transaction with a pending state change to requested that is never replayed.Catalog Items using Flow Designer-based approvals are not affected. 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: ; } } Australia release (all patches). Issue introduced in the Australia lineage via changes to com.glide.e_signature_approvals. Not present in Yokohama or earlier 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: ; } } Root Cause:The shouldBlockUpdateFromWorkspace function in ESignatureUtils (plugin: com.glide.e_signature_approvals), updated in the Australia release, is designed to block workspace UI approval state changes that require e-signature re-authentication. It incorrectly intercepts workflow-initiated not_requested → requested transitions through the following logic path: Non-interactive guard does not fire: The guard that would skip the e-signature check for non-interactive sessions requires the system property glide.approvals.esignature.disable_non_interactive to be set to true and gs.isInteractive() to return false. Service Portal and NowMobile submissions run as interactive sessions, so the guard never evaluates regardless of the property value.areApprovalsMine() returns empty for submitting users: The function checks whether the current session user (the requestor) is the designated approver of the record. The submitter is never the approver and does not hold the approval_admin role, so the function returns an empty string and runCheck() returns "not_authorised".needsESignature evaluates to true: Because the result is neither "updated" nor "no_prompt", the condition needsESignature = true is set and setAbortAction(true) fires, aborting the database write. Why admin users are not affected:Admin users hold the approval_admin role. This causes areApprovalsMine() to return the approval sys_id. Because the state transition is not_requested → requested (not an end-state decision like approved or rejected), anyImportantChange() returns false, runCheck() returns "no_prompt", and no abort occurs. Why Flow Designer approvals are not affected:Flow Designer-based Catalog Item approvals use a different creation path that does not go through the SNC - Set user approvals for group business rule chain that triggers this code path. Contributing Factors: This behavior did not exist in Yokohama; the regression was introduced in the Australia lineage when shouldBlockUpdateFromWorkspace was added or modified in the com.glide.e_signature_approvals package.The aborting business rule is Check approval state change (sys_id: d4ba6c823700010054b6a3549dbe5d4e), a Before Business Rule on sysapproval_approver with condition current.state.changes(). Failed abort evidence is also visible as INSERT records in e_signature_replay_transaction saving a pending "requested" state change. 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: ; } } Resolution Steps: Navigate to System Definition > Business Rules.Search for the business rule named Check approval state change on the sysapproval_approver table (sys_id: d4ba6c823700010054b6a3549dbe5d4e).Open the business rule script and add the following guard as the first statement in the script body: if (current.getValue('state') == 'requested') { return; } Important: Use getValue('state'), not current.state. The stored display value is "not requested" (with a space); using the GlideElement value directly can cause string comparison failures. Save the business rule and capture the change in an Update Set for controlled promotion across all affected instances (dev → test → prod) before the production upgrade window. Verification: Impersonate a non-admin ITIL user and submit a Workflow-based Catalog Item via the Service Portal.Confirm the resulting sysapproval_approver record is created with state Requested.Confirm no new records appear in e_signature_replay_transaction for the not_requested → requested transition after submission. Notes: This fix is safe: the Requested state on sysapproval_approver is only ever set programmatically by the Approval Coordinator workflow activity, never by a user action. E-signature validation remains fully intact for actual user approval decisions (approved, rejected, cancelled).Setting the system property glide.approvals.esignature.disable_non_interactive to true does not resolve this issue — Service Portal and NowMobile submissions are classified as interactive sessions.This is a platform regression and should be escalated as a defect against com.glide.e_signature_approvals for a permanent fix in a future patch/hotfix.After a production upgrade, monitor e_signature_replay_transaction for unexpected pending records with state = "requested" — these indicate the fix is absent or was overwritten by the upgrade.