Pinal Shah created ATLAS-5420:
---------------------------------
Summary: Incase of Unknown/invalid typename, notifications should
not be retried
Key: ATLAS-5420
URL: https://issues.apache.org/jira/browse/ATLAS-5420
Project: Atlas
Issue Type: Improvement
Reporter: Pinal Shah
*Description:*
If an invalid or unknown {{typeName}} is encountered during notification
processing, we should validate it upfront and throw an exception before
processing the notification. This would prevent the notification from being
processed, failing later, and being unnecessarily retried.
*Logs:*
{code:java}
2026-09-24 06:27:31,201 [NotificationHookConsumer thread-0] INFO
[NotificationHookConsumer.java:585] Message type: ENTITY_PARTIAL_UPDATE_V2
2026-09-24 06:27:31,203 [NotificationHookConsumer thread-0] INFO
[GraphTransactionAdvisor.java:43] GraphTransaction intercept for
org.apache.atlas.repository.store.graph.v2.AtlasEntityStoreV2.updateEntity
2026-09-24 06:27:31,203 [NotificationHookConsumer thread-0] ERROR
[GraphTransactionInterceptor.java:280] graph rollback due to exception
org.apache.atlas.exception.AtlasBaseException: trino_table: Unknown/invalid
typename
at
org.apache.atlas.repository.store.graph.v2.AtlasEntityStoreV2.updateEntity(AtlasEntityStoreV2.java:366)
at
org.apache.atlas.repository.store.graph.v2.AtlasEntityStoreV2$$FastClassBySpringCGLIB$$6861dca9.invoke(<generated>)
at
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at
org.apache.atlas.GraphTransactionInterceptor.invoke(GraphTransactionInterceptor.java:190)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)
at
org.apache.atlas.repository.store.graph.v2.AtlasEntityStoreV2$$EnhancerBySpringCGLIB$$a46f3b8f.updateEntity(<generated>)
at
org.apache.atlas.notification.SerialEntityProcessor.handleMessage(SerialEntityProcessor.java:584)
at
org.apache.atlas.notification.SerialEntityProcessor.handleMessage(SerialEntityProcessor.java:324)
at
org.apache.atlas.notification.NotificationHookConsumer$HookConsumer.handleMessage(NotificationHookConsumer.java:587)
at
org.apache.atlas.notification.NotificationHookConsumer$HookConsumer.run(NotificationHookConsumer.java:501)
at
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840) {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)