Detached entity using BPM

Hi!

I am working with the CUBA platform for the first time. I have followed along with a couple of the tutorials and am putting together a Proof of Concept application to teach me additional things like best practices and patterns.

When I try to execute the BPM Process, I get the error (stack trace at the end of this message). Based on my research, this typically occurs when the views being used for the screens do not contain the correct attributes. In my instance, the error occurs when I select a value from the procActors dropdown on the standard process form. Interestingly, the entity (Customer) record that is being referenced is the one I am logged in as (admin). I am not sure why the admin user record is being pulled (perhaps for audits) by the framework.

The Customer entity, in my application, extends the sec$User entity and is stored in the same table. The Contacts entity contains an association to the Customer. Further, the Feedback entity contains an association relationship to the Contact entity.

My standard process form is associated with the Feedback entity as described in the tutorial. I have tried re-doing the views in the global views.xml by inheriting from the _local as well as the custom views I created (for the customer, as customer-view, and the contact as contact-view). In both cases, I included the firstName attribute from the Customer (which in effect is inherited from sec$User).

I would appreciate any guidance you can provide.

2018-07-08 03:52:37.446 ERROR [http-nio-8080-exec-10/app/adhawan@gmail.com] com.haulmont.cuba.web.log.AppLog - Exception: 
java.lang.RuntimeException: Push failed
	at com.vaadin.server.communication.AtmospherePushConnection.push(AtmospherePushConnection.java:177) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.server.communication.AtmospherePushConnection.push(AtmospherePushConnection.java:152) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.ui.UI.push(UI.java:1562) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.server.VaadinSession.unlock(VaadinSession.java:1002) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:43) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1435) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:361) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.haulmont.cuba.web.sys.CubaApplicationServlet.serviceAppRequest(CubaApplicationServlet.java:312) ~[cuba-web-6.9.2.jar:6.9.2]
	at com.haulmont.cuba.web.sys.CubaApplicationServlet.service(CubaApplicationServlet.java:203) ~[cuba-web-6.9.2.jar:6.9.2]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) ~[servlet-api.jar:na]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[catalina.jar:8.5.23]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:8.5.23]
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-websocket.jar:8.5.23]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[catalina.jar:8.5.23]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:8.5.23]
	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:107) ~[spring-web-4.3.14.RELEASE.jar:4.3.14.RELEASE]
	at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:73) ~[spring-web-4.3.14.RELEASE.jar:4.3.14.RELEASE]
	at com.haulmont.cuba.web.sys.CubaHttpFilter.doFilter(CubaHttpFilter.java:107) ~[cuba-web-6.9.2.jar:6.9.2]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[catalina.jar:8.5.23]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:8.5.23]
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) ~[catalina.jar:8.5.23]
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) ~[catalina.jar:8.5.23]
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) ~[catalina.jar:8.5.23]
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) ~[catalina.jar:8.5.23]
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) ~[catalina.jar:8.5.23]
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650) ~[catalina.jar:8.5.23]
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) ~[catalina.jar:8.5.23]
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) ~[catalina.jar:8.5.23]
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803) ~[tomcat-coyote.jar:8.5.23]
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) ~[tomcat-coyote.jar:8.5.23]
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) ~[tomcat-coyote.jar:8.5.23]
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459) ~[tomcat-coyote.jar:8.5.23]
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-coyote.jar:8.5.23]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_171]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_171]
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-util.jar:8.5.23]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_171]
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
	at com.haulmont.chile.core.model.utils.MethodsCache.invokeGetter(MethodsCache.java:74) ~[cuba-global-6.9.2.jar:6.9.2]
	at com.haulmont.chile.core.model.impl.AbstractInstance.getValue(AbstractInstance.java:102) ~[cuba-global-6.9.2.jar:6.9.2]
	at com.haulmont.cuba.core.entity.BaseGenericIdEntity.getValue(BaseGenericIdEntity.java:139) ~[cuba-global-6.9.2.jar:6.9.2]
	at com.haulmont.chile.core.model.utils.InstanceUtils.getInstanceName(InstanceUtils.java:235) ~[cuba-global-6.9.2.jar:6.9.2]
	at com.haulmont.chile.core.model.impl.AbstractInstance.getInstanceName(AbstractInstance.java:59) ~[cuba-global-6.9.2.jar:6.9.2]
	at com.haulmont.cuba.web.gui.data.ItemWrapper.toString(ItemWrapper.java:166) ~[cuba-web-6.9.2.jar:6.9.2]
	at com.vaadin.ui.AbstractSelect.getItemCaption(AbstractSelect.java:1237) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.ui.ComboBox.paintContent(ComboBox.java:300) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.haulmont.cuba.web.toolkit.ui.CubaComboBox.paintContent(CubaComboBox.java:127) ~[cuba-web-6.9.2.jar:6.9.2]
	at com.vaadin.server.LegacyPaint.paint(LegacyPaint.java:65) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.server.communication.LegacyUidlWriter.write(LegacyUidlWriter.java:82) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.server.communication.UidlWriter.write(UidlWriter.java:131) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.server.communication.AtmospherePushConnection.push(AtmospherePushConnection.java:174) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	... 36 common frames omitted
Caused by: java.lang.reflect.InvocationTargetException: null
	at sun.reflect.GeneratedMethodAccessor196.invoke(Unknown Source) ~[na:na]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171]
	at com.haulmont.chile.core.model.utils.MethodsCache.invokeGetter(MethodsCache.java:72) ~[cuba-global-6.9.2.jar:6.9.2]
	... 48 common frames omitted
Caused by: java.lang.IllegalStateException: Cannot get unfetched attribute [firstName] from detached object com.non.crm.entity.Customer-f91d7683-c334-94ad-94b7-c0566e64c3ee [detached].
	at org.eclipse.persistence.internal.queries.EntityFetchGroup.onUnfetchedAttribute(EntityFetchGroup.java:98) ~[eclipselink-2.6.2.cuba23.jar:2.6.2.cuba23]
	at com.haulmont.cuba.core.sys.persistence.CubaEntityFetchGroup.onUnfetchedAttribute(CubaEntityFetchGroup.java:74) ~[cuba-global-6.9.2.jar:6.9.2]
	at org.eclipse.persistence.internal.jpa.EntityManagerImpl.processUnfetchedAttribute(EntityManagerImpl.java:2846) ~[eclipselink-2.6.2.cuba23.jar:2.6.2.cuba23]
	at com.haulmont.chile.core.model.impl.AbstractInstance._persistence_checkFetched(AbstractInstance.java) ~[cuba-global-6.9.2.jar:6.9.2]
	at com.haulmont.cuba.security.entity.User._persistence_get_firstName(User.java) ~[cuba-global-6.9.2.jar:6.9.2]
	at com.haulmont.cuba.security.entity.User.getFirstName(User.java:186) ~[cuba-global-6.9.2.jar:6.9.2]
	... 52 common frames omitted
2018-07-08 03:53:00.759 ERROR [http-nio-8080-exec-13/app/admin] com.haulmont.cuba.web.log.AppLog - Exception: 
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Push failed
	at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[na:1.8.0_171]
	at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[na:1.8.0_171]
	at com.vaadin.server.VaadinSession$FutureAccess.get(VaadinSession.java:124) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.server.VaadinService.runPendingAccessTasks(VaadinService.java:1864) [vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.server.VaadinSession.unlock(VaadinSession.java:994) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.server.VaadinService.ensureAccessQueuePurged(VaadinService.java:1824) [vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.server.VaadinService.accessSession(VaadinService.java:1790) [vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.server.VaadinSession.access(VaadinSession.java:1399) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.server.VaadinService.fireSessionDestroy(VaadinService.java:460) [vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.server.VaadinSession.valueUnbound(VaadinSession.java:324) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at org.apache.catalina.session.StandardSession.removeAttributeInternal(StandardSession.java:1819) ~[catalina.jar:8.5.23]
	at org.apache.catalina.session.StandardSession.expire(StandardSession.java:879) ~[catalina.jar:8.5.23]
	at org.apache.catalina.session.StandardSession.expire(StandardSession.java:766) ~[catalina.jar:8.5.23]
	at org.apache.catalina.session.StandardSession.invalidate(StandardSession.java:1266) ~[catalina.jar:8.5.23]
	at org.apache.catalina.session.StandardSessionFacade.invalidate(StandardSessionFacade.java:171) ~[catalina.jar:8.5.23]
	at com.haulmont.cuba.web.sys.CubaApplicationServlet.service(CubaApplicationServlet.java:177) ~[cuba-web-6.9.2.jar:6.9.2]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) ~[servlet-api.jar:na]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[catalina.jar:8.5.23]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:8.5.23]
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-websocket.jar:8.5.23]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[catalina.jar:8.5.23]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:8.5.23]
	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:107) ~[spring-web-4.3.14.RELEASE.jar:4.3.14.RELEASE]
	at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:73) ~[spring-web-4.3.14.RELEASE.jar:4.3.14.RELEASE]
	at com.haulmont.cuba.web.sys.CubaHttpFilter.doFilter(CubaHttpFilter.java:107) ~[cuba-web-6.9.2.jar:6.9.2]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[catalina.jar:8.5.23]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:8.5.23]
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) ~[catalina.jar:8.5.23]
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) ~[catalina.jar:8.5.23]
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) ~[catalina.jar:8.5.23]
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) ~[catalina.jar:8.5.23]
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) ~[catalina.jar:8.5.23]
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650) ~[catalina.jar:8.5.23]
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) ~[catalina.jar:8.5.23]
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) ~[catalina.jar:8.5.23]
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803) ~[tomcat-coyote.jar:8.5.23]
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) ~[tomcat-coyote.jar:8.5.23]
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) ~[tomcat-coyote.jar:8.5.23]
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459) ~[tomcat-coyote.jar:8.5.23]
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-coyote.jar:8.5.23]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_171]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_171]
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-util.jar:8.5.23]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_171]
Caused by: java.lang.RuntimeException: Push failed
	at com.vaadin.server.communication.AtmospherePushConnection.push(AtmospherePushConnection.java:177) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.server.communication.AtmospherePushConnection.push(AtmospherePushConnection.java:152) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.ui.UI.close(UI.java:1259) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.server.VaadinService$1$1.run(VaadinService.java:481) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.ui.UI.accessSynchronously(UI.java:1392) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.server.VaadinService$1.run(VaadinService.java:471) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_171]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_171]
	at com.vaadin.server.VaadinService.runPendingAccessTasks(VaadinService.java:1861) [vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	... 40 common frames omitted
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
	at com.haulmont.chile.core.model.utils.MethodsCache.invokeGetter(MethodsCache.java:74) ~[cuba-global-6.9.2.jar:6.9.2]
	at com.haulmont.chile.core.model.impl.AbstractInstance.getValue(AbstractInstance.java:102) ~[cuba-global-6.9.2.jar:6.9.2]
	at com.haulmont.cuba.core.entity.BaseGenericIdEntity.getValue(BaseGenericIdEntity.java:139) ~[cuba-global-6.9.2.jar:6.9.2]
	at com.haulmont.chile.core.model.utils.InstanceUtils.getInstanceName(InstanceUtils.java:235) ~[cuba-global-6.9.2.jar:6.9.2]
	at com.haulmont.chile.core.model.impl.AbstractInstance.getInstanceName(AbstractInstance.java:59) ~[cuba-global-6.9.2.jar:6.9.2]
	at com.haulmont.cuba.web.gui.data.ItemWrapper.toString(ItemWrapper.java:166) ~[cuba-web-6.9.2.jar:6.9.2]
	at com.vaadin.ui.AbstractSelect.getItemCaption(AbstractSelect.java:1237) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.ui.ComboBox.paintContent(ComboBox.java:300) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.haulmont.cuba.web.toolkit.ui.CubaComboBox.paintContent(CubaComboBox.java:127) ~[cuba-web-6.9.2.jar:6.9.2]
	at com.vaadin.server.LegacyPaint.paint(LegacyPaint.java:65) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.server.communication.LegacyUidlWriter.write(LegacyUidlWriter.java:82) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.server.communication.UidlWriter.write(UidlWriter.java:131) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	at com.vaadin.server.communication.AtmospherePushConnection.push(AtmospherePushConnection.java:174) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
	... 48 common frames omitted
Caused by: java.lang.reflect.InvocationTargetException: null
	at sun.reflect.GeneratedMethodAccessor196.invoke(Unknown Source) ~[na:na]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171]
	at com.haulmont.chile.core.model.utils.MethodsCache.invokeGetter(MethodsCache.java:72) ~[cuba-global-6.9.2.jar:6.9.2]
	... 60 common frames omitted
Caused by: java.lang.IllegalStateException: Cannot get unfetched attribute [firstName] from detached object com.non.crm.entity.Customer-f91d7683-c334-94ad-94b7-c0566e64c3ee [detached].
	at org.eclipse.persistence.internal.queries.EntityFetchGroup.onUnfetchedAttribute(EntityFetchGroup.java:98) ~[eclipselink-2.6.2.cuba23.jar:2.6.2.cuba23]
	at com.haulmont.cuba.core.sys.persistence.CubaEntityFetchGroup.onUnfetchedAttribute(CubaEntityFetchGroup.java:74) ~[cuba-global-6.9.2.jar:6.9.2]
	at org.eclipse.persistence.internal.jpa.EntityManagerImpl.processUnfetchedAttribute(EntityManagerImpl.java:2846) ~[eclipselink-2.6.2.cuba23.jar:2.6.2.cuba23]
	at com.haulmont.chile.core.model.impl.AbstractInstance._persistence_checkFetched(AbstractInstance.java) ~[cuba-global-6.9.2.jar:6.9.2]
	at com.haulmont.cuba.security.entity.User._persistence_get_firstName(User.java) ~[cuba-global-6.9.2.jar:6.9.2]
	at com.haulmont.cuba.security.entity.User.getFirstName(User.java:186) ~[cuba-global-6.9.2.jar:6.9.2]
	... 64 common frames omitted

Hi,
let me explain what happens here. Your Customer entity extends the User entity. This means that anytime you request a list of users, you will also get customers in the result.
In the proc-actors-frame of BPM addon a list of users with a _minimal view is extracted. The _minimal view is a view that contains fields from the instance name of the entity. You can find it the @NamePattern("#getCaption|login,name") annotation in the entity class code. So you will get a list of User and Customer entitites where only login and name fields are fetched. But in your Customer entity you probably changed the NamePattern and it includes the firstName field. When a loaded entity instance is added to the lookupField to be displayed, an attempt to build the instance name is preformed (instance names are used by default as captions in dropdown lists), but for the Contract entity the firstName field is not loaded. That’s why you get this error.

@gorbunkov - Max, thank you for the explanation. This makes sense to me. The short term fix for me is to change the name pattern for the Customer entity to match the User entity.

Longer term, however, what do you think is the best way to filter out customers from the proc-actors-frame?

Well, first of all, think one more time is it really required that Customer extends User entity. I ask because you will face the same problem in many parts of the system where a list of users is displayed