External users unable to pre populate list collector variable in Service PortalIssue g_form.setValue not working for external user when populating the list collector variables in Service Portal. In this scenario, the arguments pass to the setValue function is only the sys_ids or the list values. Example catalog client script: function onLoad() { var sysIds = "62826bf03710200044e0bfc8bcbe5df1,0a826bf03710200044e0bfc8bcbe5d7a"; g_form.setValue('list_collector_variables', sysIds);} OR function onLoad() { var listValues = "My Values1, MyValues2, MyValues3"; g_form.setValue('list_collector_variables', listValues);} ReleaseN/ACauseSyntax: g_form.setValue(String fieldName, String value, String displayValue) When passing only the value argument on the setValue function, the default behaviour of the list collector widget on Service Portal is to call a UI List Element API (internal API) to retrieve either the display value or the sys id of the fields that is set to the list collector variable. As external users by default do not have access to internal APIs, the api call will return an error response: Response 403{"error":{"detail":"","message":"External User Not Authorized"},"status":"failure"}ResolutionThe error occurred due to the list collector widget in Service Portal firing a UI List Element REST API call to retrieve the display value for the list collector as you are only passing the sys_ids on it. Any external user will not have access to an internal REST API by default which is the reason why the list collector field is not populated. The error can be seen in the browser console getting a user forbidden access to call API.Note that this is a default behaviour of a list collector widget when running in Service Portal.To avoid this issue, it is better to pass a third argument to the g_form.SetValue function. Note that by checking the documentation for the GlideForm API for setValue method, there is another argument we can pass which is displayValue.https://developer.servicenow.com/dev.do#!/reference/api/orlando/client/c_GlideFormAPIBy passing the sys_ids, and displayValues, the widget will not need to call the REST API and it will be much better approach as it will prevent another API call just to get values.g_form.setValue(String fieldName, String value, String displayValue)Related LinksDocumentation: https://developer.servicenow.com/dev.do#!/reference/api/orlando/client/c_GlideFormAPI