: 📞 Incoming stream started: streamSid=MZ506e1654f884c8579c5c4a16fa92da0a, callSid=CA66b8e54f3d49ac6552de3b27820a639f, from=+212661979197, to=+41325391918, session=a47d6f74-f211-b7da-7041-1309c3d1f6b8
2025-10-16T13:27:37.405+01:00  INFO 82399 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.v.handler.TwilioMediaStreamHandler   : 🚀 Calling onClientConnect for handler: ElevenLabsSessionHandler
2025-10-16T13:27:37.405+01:00  INFO 82399 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.v.handler.ElevenLabsSessionHandler   : ElevenLabs handler - Client connected: callSid=CA66b8e54f3d49ac6552de3b27820a639f
2025-10-16T13:27:37.405+01:00 DEBUG 82399 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.v.handler.ElevenLabsSessionHandler   : Connecting to ElevenLabs with URL: wss://api.elevenlabs.io/v1/convai/conversation?agent_id=agent_0901k7p84z3texjtkc3wbrehj57z
2025-10-16T13:27:37.969+01:00  INFO 82399 --- [saas-multitenant-api] [ctReadThread-90] c.s.v.handler.ElevenLabsSessionHandler   : Connected to ElevenLabs Conversational AI for session: a47d6f74-f211-b7da-7041-1309c3d1f6b8
2025-10-16T13:27:37.969+01:00 DEBUG 82399 --- [saas-multitenant-api] [ctReadThread-90] c.s.v.handler.ElevenLabsSessionHandler   : Initializing ElevenLabs conversation (agent already in URL): {"type":"conversation_initiation_client_data"}
2025-10-16T13:27:37.970+01:00 DEBUG 82399 --- [saas-multitenant-api] [ctReadThread-90] c.s.v.handler.ElevenLabsSessionHandler   : Received ElevenLabs event: conversation_initiation_metadata
2025-10-16T13:27:38.463+01:00 DEBUG 82399 --- [saas-multitenant-api] [ctReadThread-90] c.s.v.handler.ElevenLabsSessionHandler   : Received ElevenLabs event: audio
2025-10-16T13:27:38.463+01:00 DEBUG 82399 --- [saas-multitenant-api] [ctReadThread-90] c.s.v.handler.ElevenLabsSessionHandler   : Received ElevenLabs event: agent_response
2025-10-16T13:27:39.800+01:00 DEBUG 82399 --- [saas-multitenant-api] [ctReadThread-90] c.s.v.handler.ElevenLabsSessionHandler   : Received ElevenLabs event: ping
2025-10-16T13:27:41.500+01:00 DEBUG 82399 --- [saas-multitenant-api] [ctReadThread-90] c.s.v.handler.ElevenLabsSessionHandler   : Received ElevenLabs event: ping
2025-10-16T13:27:43.201+01:00 DEBUG 82399 --- [saas-multitenant-api] [ctReadThread-90] c.s.v.handler.ElevenLabsSessionHandler   : Received ElevenLabs event: ping
2025-10-16T13:27:44.903+01:00 DEBUG 82399 --- [saas-multitenant-api] [ctReadThread-90] c.s.v.handler.ElevenLabsSessionHandler   : Received ElevenLabs event: ping
2025-10-16T13:27:46.602+01:00 DEBUG 82399 --- [saas-multitenant-api] [ctReadThread-90] c.s.v.handler.ElevenLabsSessionHandler   : Received ElevenLabs event: ping
2025-10-16T13:27:48.303+01:00 DEBUG 82399 --- [saas-multitenant-api] [ctReadThread-90] c.s.v.handler.ElevenLabsSessionHandler   : Received ElevenLabs event: ping
2025-10-16T13:27:50.004+01:00 DEBUG 82399 --- [saas-multitenant-api] [ctReadThread-90] c.s.v.handler.ElevenLabsSessionHandler   : Received ElevenLabs event: ping
2025-10-16T13:27:51.706+01:00 DEBUG 82399 --- [saas-multitenant-api] [ctReadThread-90] c.s.v.handler.ElevenLabsSessionHandler   : Received ElevenLabs event: ping
2025-10-16T13:27:53.406+01:00 DEBUG 82399 --- [saas-multitenant-api] [ctReadThread-90] c.s.v.handler.ElevenLabsSessionHandler   : Received ElevenLabs event: ping
2025-10-16T13:27:55.108+01:00 DEBUG 82399 --- [saas-multitenant-api] [ctReadThread-90] c.s.v.handler.ElevenLabsSessionHandler   : Received ElevenLabs event: ping
2025-10-16T13:27:56.809+01:00 DEBUG 82399 --- [saas-multitenant-api] [ctReadThread-90] c.s.v.handler.ElevenLabsSessionHandler   : Received ElevenLabs event: ping
2025-10-16T13:27:57.984+01:00  INFO 82399 --- [saas-multitenant-api] [nio-7001-exec-5] c.s.v.handler.TwilioMediaStreamHandler   : Stream stopped for session: a47d6f74-f211-b7da-7041-1309c3d1f6b8
2025-10-16T13:27:58.510+01:00 DEBUG 82399 --- [saas-multitenant-api] [ctReadThread-90] c.s.v.handler.ElevenLabsSessionHandler   : Received ElevenLabs event: ping
2025-10-16T13:27:58.986+01:00 DEBUG 82399 --- [saas-multitenant-api] [nio-7001-exec-6] s.w.s.h.LoggingWebSocketHandlerDecorator : StandardWebSocketSession[id=a47d6f74-f211-b7da-7041-1309c3d1f6b8, uri=ws://benedictory-provocative-lauralee.ngrok-free.dev/media-stream] closed with CloseStatus[code=1000, reason=null]
2025-10-16T13:27:58.986+01:00  INFO 82399 --- [saas-multitenant-api] [nio-7001-exec-6] c.s.v.handler.TwilioMediaStreamHandler   : === TWILIO WEBSOCKET DISCONNECTED === Session: a47d6f74-f211-b7da-7041-1309c3d1f6b8, status: CloseStatus[code=1000, reason=null]
2025-10-16T13:27:58.986+01:00  INFO 82399 --- [saas-multitenant-api] [nio-7001-exec-6] c.s.v.handler.ElevenLabsSessionHandler   : ElevenLabs handler - Closing session: a47d6f74-f211-b7da-7041-1309c3d1f6b8
2025-10-16T13:27:59.112+01:00  INFO 82399 --- [saas-multitenant-api] [ctReadThread-90] c.s.v.handler.ElevenLabsSessionHandler   : Disconnected from ElevenLabs: 1000 - 
2025-10-16T13:28:00.633+01:00 DEBUG 82399 --- [saas-multitenant-api] [l-1:housekeeper] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Pool stats (total=10/10, idle=10/10, active=0, waiting=0)
2025-10-16T13:28:00.634+01:00 DEBUG 82399 --- [saas-multitenant-api] [l-1:housekeeper] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Fill pool skipped, pool has sufficient level or currently being filled.
2025-10-16T13:28:01.443+01:00 DEBUG 82399 --- [saas-multitenant-api] [nio-7001-exec-7] o.s.security.web.FilterChainProxy        : Securing POST /api/voip/elevenlabs/call-summary
2025-10-16T13:28:01.443+01:00 DEBUG 82399 --- [saas-multitenant-api] [nio-7001-exec-7] o.s.s.w.a.AnonymousAuthenticationFilter  : Set SecurityContextHolder to anonymous SecurityContext
2025-10-16T13:28:01.443+01:00 DEBUG 82399 --- [saas-multitenant-api] [nio-7001-exec-7] o.s.security.web.FilterChainProxy        : Secured POST /api/voip/elevenlabs/call-summary
2025-10-16T13:28:01.444+01:00 DEBUG 82399 --- [saas-multitenant-api] [nio-7001-exec-7] o.s.web.servlet.DispatcherServlet        : POST "/api/voip/elevenlabs/call-summary", parameters={}
2025-10-16T13:28:01.444+01:00 DEBUG 82399 --- [saas-multitenant-api] [nio-7001-exec-7] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.saas.voip.controller.ElevenLabsCallbackController#handleCallSummary(Map, String)
2025-10-16T13:28:01.444+01:00 DEBUG 82399 --- [saas-multitenant-api] [nio-7001-exec-7] o.j.s.OpenEntityManagerInViewInterceptor : Opening JPA EntityManager in OpenEntityManagerInViewInterceptor
2025-10-16T13:28:01.453+01:00 DEBUG 82399 --- [saas-multitenant-api] [nio-7001-exec-7] m.m.a.RequestResponseBodyMethodProcessor : Read "application/json;charset=UTF-8" to [{type=post_call_transcription, event_timestamp=1760617681, data={agent_id=agent_0901k7p84z3texjtkc3w (truncated)...]
2025-10-16T13:28:01.455+01:00  INFO 82399 --- [saas-multitenant-api] [nio-7001-exec-7] c.s.v.c.ElevenLabsCallbackController     : Received ElevenLabs call summary: {type=post_call_transcription, event_timestamp=1760617681, data={agent_id=agent_0901k7p84z3texjtkc3wbrehj57z, conversation_id=conv_4001k7pftxcbee598907y9s12cjx, status=done, user_id=null, transcript=[{role=agent, agent_metadata={agent_id=agent_0901k7p84z3texjtkc3wbrehj57z, workflow_node_id=null}, message=Bonjour ! Bienvenue à la Clinique « Al azhar », comment puis-je vous aider aujourd'hui ?..., multivoice_message=null, tool_calls=[], tool_results=[], feedback=null, llm_override=null, time_in_call_secs=0, conversation_turn_metrics={metrics={convai_tts_service_ttfb={elapsed_time=0.20995124699999224}}}, rag_retrieval_info=null, llm_usage=null, interrupted=true, original_message=Bonjour ! Bienvenue à la Clinique « Al azhar », comment puis-je vous aider aujourd'hui ?, source_medium=null}], metadata={start_time_unix_secs=1760617657, accepted_time_unix_secs=1760617657, call_duration_secs=22, cost=238, deletion_settings={deletion_time_unix_secs=null, deleted_logs_at_time_unix_secs=null, deleted_audio_at_time_unix_secs=null, deleted_transcript_at_time_unix_secs=null, delete_transcript_and_pii=false, delete_audio=false}, feedback={overall_score=null, likes=0, dislikes=0}, authorization_method=public, charging={dev_discount=false, is_burst=false, tier=free, llm_usage={irreversible_generation={model_usage={}}, initiated_generation={model_usage={}}}, llm_price=0, llm_charge=0, call_charge=238, free_minutes_consumed=0.0, free_llm_dollars_consumed=0.0}, phone_call=null, batch_call=null, termination_reason=Client disconnected: 1000, error=null, main_language=fr, rag_usage=null, text_only=false, features_usage={language_detection={enabled=false, used=false}, transfer_to_agent={enabled=false, used=false}, transfer_to_number={enabled=false, used=false}, multivoice={enabled=false, used=false}, dtmf_tones={enabled=false, used=false}, external_mcp_servers={enabled=false, used=false}, pii_zrm_workspace=false, pii_zrm_agent=false, tool_dynamic_variable_updates={enabled=false, used=false}, is_livekit=false, voicemail_detection={enabled=false, used=false}, workflow={enabled=false, tool_node={enabled=false, used=false}, standalone_agent_node={enabled=false, used=false}, phone_number_node={enabled=false, used=false}, end_node={enabled=false, used=false}}, agent_testing={enabled=false, tests_ran_after_last_modification=false, tests_ran_in_last_7_days=false}}, eleven_assistant={is_eleven_assistant=false}, initiator_id=null, conversation_initiation_source=unknown, conversation_initiation_source_version=null, timezone=null, initiation_trigger={trigger_type=default}, async_metadata=null, whatsapp=null, agent_created_from=ui, agent_last_updated_from=ui}, analysis={evaluation_criteria_results={}, data_collection_results={}, call_successful=success, transcript_summary=The AI agent greets the user, welcoming them to the "Al azhar" Clinic and offering assistance.
, call_summary_title=Clinic Al Azhar greeting}, conversation_initiation_client_data={conversation_config_override={tts=null, conversation=null, agent=null}, custom_llm_extra_body={}, user_id=null, source_info={source=null, version=null}, dynamic_variables={system__agent_id=agent_0901k7p84z3texjtkc3wbrehj57z, system__current_agent_id=agent_0901k7p84z3texjtkc3wbrehj57z, system__conversation_id=conv_4001k7pftxcbee598907y9s12cjx, system__caller_id=null, system__called_number=null, system__call_duration_secs=21, system__time_utc=2025-10-16T12:27:59.149515+00:00, system__time=Thursday, 12:27 16 October 2025, system__timezone=null, system__call_sid=null}}}}
2025-10-16T13:28:01.455+01:00 ERROR 82399 --- [saas-multitenant-api] [nio-7001-exec-7] c.s.v.c.ElevenLabsCallbackController     : Error processing ElevenLabs callback

java.lang.NullPointerException: Cannot invoke "Object.hashCode()" because "key" is null
	at java.base/java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:948)
	at com.saas.voip.handler.ElevenLabsSessionHandler.getCallSid(ElevenLabsSessionHandler.java:224)
	at com.saas.voip.controller.ElevenLabsCallbackController.handleCallSummary(ElevenLabsCallbackController.java:38)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:258)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:191)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:991)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:896)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)
	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)
	at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)
	at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:490)
	at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:351)
	at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:83)
	at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:129)
	at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:101)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)
	at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:125)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)
	at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)
	at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)
	at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)
	at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)
	at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)
	at com.saas.shared.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:56)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)
	at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)
	at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)
	at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)
	at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)
	at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)
	at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)
	at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)
	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)
	at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)
	at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)
	at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:334)
	at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:225)
	at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)
	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)
	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
	at org.springframework.web.filter.ServletRequestPathFilter.doFilter(ServletRequestPathFilter.java:52)
	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
	at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)
	at org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebSecurityConfiguration.java:319)
	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
	at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$4(HandlerMappingIntrospector.java:267)
	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
	at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)
	at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:240)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
	at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:110)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:116)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:398)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:903)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1776)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:975)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:493)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
	at java.base/java.lang.Thread.run(Thread.java:1474)

2025-10-16T13:28:01.459+01:00 DEBUG 82399 --- [saas-multitenant-api] [nio-7001-exec-7] o.s.w.s.m.m.a.HttpEntityMethodProcessor  : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml, application/xml;charset=UTF-8, text/xml;charset=UTF-8, application/*+xml;charset=UTF-8]
2025-10-16T13:28:01.459+01:00 DEBUG 82399 --- [saas-multitenant-api] [nio-7001-exec-7] o.s.w.s.m.m.a.HttpEntityMethodProcessor  : Writing [{error=Cannot invoke "Object.hashCode()" because "key" is null}]
2025-10-16T13:28:01.460+01:00 DEBUG 82399 --- [saas-multitenant-api] [nio-7001-exec-7] o.j.s.OpenEntityManagerInViewInterceptor : Closing JPA EntityManager in OpenEntityManagerInViewInterceptor
2025-10-16T13:28:01.460+01:00 DEBUG 82399 --- [saas-multitenant-api] [nio-7001-exec-7] o.s.web.servlet.DispatcherServlet        : Completed 500 INTERNAL_SERVER_ERROR
