Error when retrieving Public table data using SOAP


Unable to retrieve a record from a table using SOAP web service.



Public table is queried (the sys_public table has an entry for this table and the value is true) and the following error is returned to the SOAP client application: 

com.glide.processors.soap.SOAPProcessingException: insufficient rights to read <table_name> <sys_id></faultstring>
<detail>com.glide.processors.soap.SOAPProcessingException: insufficient rights to read <table_name> <sys_id>
at com.glide.processors.soap.command.Get.process(
at com.glide.processors.soap.SOAPProcessorThread.doCommand(
at com.glide.processors.soap.SOAPProcessorThread.doCommand(
at com.glide.processors.soap.SOAPProcessorThread.processStandardWebService(
at com.glide.processors.soap.SOAPProcessorThread.processBody(
at com.glide.processors.soap.SOAPProcessorThread.processRequest(
at com.glide.processors.soap.SOAPProcessorThread.run0(


When the SOAP processor receives a request to access a public page, it is processed as the "guest" user. The guest user is unable to process the SOAP request, even though it is a public page. 


To workaround the issue, use a database view that is not public to:
  • enable the correct user to authenticate
  • correctly evaluate against all applicable ACLs

Workaround steps:

  1. Create a database view against the table in question that is public (do not make the view public).
  2. Add read/create/write ACLs to the database view.
  3. Consume the WSDL of the database view.
  4. Run the SOAP requests against the view.
Warning: Do not add the database view to the sys_public page. This view must not be public, or the same error occurs.


Article Information

Last Updated:2019-05-21 11:37:00