xforms Privileges required: Purge HL7 Inbound Queue

when i try to enter a form in form entry app i have this error: Privileges required: Purge HL7 Inbound Queue

I fixed this error a long time ago creating the Purge HL7 Inbound Queue privilege.

i don’t know why i have this error again, the user have the privilege active

this is the error log

org.openmrs.api.APIAuthenticationException: Privileges required: Purge HL7 Inbound Queue
at org.openmrs.aop.AuthorizationAdvice.throwUnauthorized(AuthorizationAdvice.java:121)
at org.openmrs.aop.AuthorizationAdvice.before(AuthorizationAdvice.java:98)
at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:50)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at com.sun.proxy.$Proxy262.purgeHL7InQueue(Unknown Source)
at org.openmrs.module.xforms.formentry.HL7InQueueProcessor.setFatalError(HL7InQueueProcessor.java:137)
at org.openmrs.module.xforms.formentry.HL7InQueueProcessor.processHL7InQueue(HL7InQueueProcessor.java:106)
at org.openmrs.module.xforms.XformsQueueProcessor.processDoc(XformsQueueProcessor.java:335)
at org.openmrs.module.xforms.XformsQueueProcessor.submitXForm(XformsQueueProcessor.java:303)
at org.openmrs.module.xforms.XformsQueueProcessor.processXForm(XformsQueueProcessor.java:187)
at org.openmrs.module.xforms.download.XformDataUploadManager.queueForm(XformDataUploadManager.java:236)
at org.openmrs.module.xforms.download.XformDataUploadManager.processXform(XformDataUploadManager.java:99)
at org.openmrs.module.xforms.web.controller.XformDataUploadController.onSubmit(XformDataUploadController.java:108)
at org.springframework.web.servlet.mvc.SimpleFormController.processFormSubmission(SimpleFormController.java:272)
at org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:268)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:855)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.openmrs.module.web.filter.ForcePasswordChangeFilter.doFilter(ForcePasswordChangeFilter.java:61)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.openmrs.module.web.filter.ModuleFilterChain.doFilter(ModuleFilterChain.java:72)
at org.openmrs.module.xforms.web.XformsFilter.doFilter(XformsFilter.java:62)
at org.openmrs.module.web.filter.ModuleFilterChain.doFilter(ModuleFilterChain.java:70)
at org.openmrs.module.web.filter.ModuleFilter.doFilter(ModuleFilter.java:54)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.openmrs.web.filter.OpenmrsFilter.doFilterInternal(OpenmrsFilter.java:109)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:230)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.openmrs.web.filter.StartupFilter.doFilter(StartupFilter.java:105)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.openmrs.web.filter.StartupFilter.doFilter(StartupFilter.java:105)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.openmrs.web.filter.StartupFilter.doFilter(StartupFilter.java:105)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)

OpenMRS version: 1.11.6 Xform version: 4.3.9-SNAPSHOT

UPDATE—

I try to delete the Purge HL7 Inbound Queue and i have this error:

Cannot delete Privilege. Database constraints will be violated.

Make sure that the user account you are using to submit the form has this privilege.

Yes, have it

I see now that the only account that can submit the form is admin, but the others user have this privilege

Can i look at a screenshot with any of these users having this privilege?

I add the privilege in “Provider” Role

and this user have the provider role

@ibatista can i also have a screenshot of the Provider role having this privilege?

i made 2 screenshot because the screen is too large.

Can you rename the privilege from “Purge HL7 inbound queue” to “Purge HL7 Inbound Queue”? That is changing the case for i and q.

I cant rename or delete but i try to add other with I and Q but still same

error trying delete

----------------Update-------------

i can see right now that The forms are saving even though it is displaying the error

You could rename within the privilege and role_privilege tables.

I update in role_privilege table but when i go to change in privilege table i have this error on MySQL Workbench

Operation failed: There was an error while applying the SQL script to the database.
Executing:
UPDATE `openmrs`.`privilege` SET `privilege`='Purge HL7 Inbound Queue' WHERE `privilege`='Purge HL7 inbound queue';

ERROR 1451: 1451: Cannot delete or update a parent row: a foreign key constraint fails (`openmrs`.`role_privilege`, CONSTRAINT `privilege_definitions` FOREIGN KEY (`privilege`) REFERENCES `privilege` (`privilege`))
SQL Statement:
UPDATE `openmrs`.`privilege` SET `privilege`='Purge HL7 Inbound Queue' WHERE `privilege`='Purge HL7 inbound queue'

For the “role_privilege” table, you could temporarily set this constraint “privilege_definitions” to ON UPDATE CASCADE

as you say, i change the initials and its working now! Thanks very much Daniel!