2025-10-19T16:56:13.544+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.filter.TelnyxTenantResolverFilter  : 🎯 TelnyxTenantResolverFilter: Intercepting webhook: /api/voip/telnyx/texml-response
2025-10-19T16:56:13.547+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] tor$SharedEntityManagerInvocationHandler : Creating new EntityManager for shared EntityManager invocation
2025-10-19T16:56:13.547+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.s.core.TenantIdentifierResolverImpl  : 🔍 resolveCurrentTenantIdentifier() CALLED - returning: saas_db
2025-10-19T16:56:13.584+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.orm.sql.ast.create         : Created new SQL alias : pn1_0
2025-10-19T16:56:13.584+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.orm.sql.ast.create         : Registration of TableGroup [StandardTableGroup(com.saas.admin.entity.PhoneNumber(26))] with identifierForTableGroup [com.saas.admin.entity.PhoneNumber] for NavigablePath [com.saas.admin.entity.PhoneNumber] 
2025-10-19T16:56:13.589+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.h.q.sqm.sql.BaseSqmToSqlAstConverter   : Determining mapping-model type for SqmParameter : org.hibernate.query.sqm.tree.expression.SqmJpaCriteriaParameterWrapper@3144bee1
2025-10-19T16:56:13.589+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.h.q.sqm.sql.BaseSqmToSqlAstConverter   : Determining mapping-model type for SqmPath : SqmBasicValuedSimplePath(com.saas.admin.entity.PhoneNumber(26).phoneNumber) 
2025-10-19T16:56:13.592+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.orm.results.graph.AST      : DomainResult Graph:
 \-EntityResultImpl [com.saas.admin.entity.PhoneNumber(26)]
 |  +-BasicFetch [com.saas.admin.entity.PhoneNumber(26).createdAt]
 |  +-BasicFetch [com.saas.admin.entity.PhoneNumber(26).description]
 |  +-BasicFetch [com.saas.admin.entity.PhoneNumber(26).friendlyName]
 |  +-BasicFetch [com.saas.admin.entity.PhoneNumber(26).isActive]
 |  +-BasicFetch [com.saas.admin.entity.PhoneNumber(26).phoneNumber]
 |  +-BasicFetch [com.saas.admin.entity.PhoneNumber(26).provider]
 |  +-BasicFetch [com.saas.admin.entity.PhoneNumber(26).tenantId]
 |  \-BasicFetch [com.saas.admin.entity.PhoneNumber(26).updatedAt]

2025-10-19T16:56:13.592+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.orm.sql.ast.tree           : SQL AST Tree:
    SelectStatement {
      FromClause {
        StandardTableGroup (pn1 : com.saas.admin.entity.PhoneNumber(26)) {
          primaryTableReference : phone_numbers as pn1_0
        }
      }
    }

2025-10-19T16:56:13.597+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.orm.sql.exec               : Skipping reading Query result cache data: cache-enabled = false, cache-mode = NORMAL
2025-10-19T16:56:13.598+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.SQL                        : 
    select
        pn1_0.id,
        pn1_0.created_at,
        pn1_0.description,
        pn1_0.friendly_name,
        pn1_0.is_active,
        pn1_0.phone_number,
        pn1_0.provider,
        pn1_0.tenant_id,
        pn1_0.updated_at 
    from
        phone_numbers pn1_0 
    where
        pn1_0.phone_number=?
Hibernate: 
    select
        pn1_0.id,
        pn1_0.created_at,
        pn1_0.description,
        pn1_0.friendly_name,
        pn1_0.is_active,
        pn1_0.phone_number,
        pn1_0.provider,
        pn1_0.tenant_id,
        pn1_0.updated_at 
    from
        phone_numbers pn1_0 
    where
        pn1_0.phone_number=?
2025-10-19T16:56:13.598+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-1] .s.c.SchemaMultiTenantConnectionProvider : 🔥 getConnection() CALLED with tenantIdentifier: saas_db
2025-10-19T16:56:13.599+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-1] .s.c.SchemaMultiTenantConnectionProvider : ⚡ Executing: USE saas_db
2025-10-19T16:56:13.599+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-1] .s.c.SchemaMultiTenantConnectionProvider : ✅ Successfully switched to database: saas_db
2025-10-19T16:56:13.606+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.orm.results                : Initializer list:
	  com.saas.admin.entity.PhoneNumber(26) -> EntityJoinedFetchInitializer(com.saas.admin.entity.PhoneNumber(26))@1508284190 (SingleTableEntityPersister(com.saas.admin.entity.PhoneNumber))

2025-10-19T16:56:13.615+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] tor$SharedEntityManagerInvocationHandler : Creating new EntityManager for shared EntityManager invocation
2025-10-19T16:56:13.615+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.s.core.TenantIdentifierResolverImpl  : 🔍 resolveCurrentTenantIdentifier() CALLED - returning: saas_db
2025-10-19T16:56:13.616+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.orm.sql.ast.create         : Created new SQL alias : t1_0
2025-10-19T16:56:13.616+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.orm.sql.ast.create         : Registration of TableGroup [StandardTableGroup(com.saas.admin.entity.Tenant(34))] with identifierForTableGroup [com.saas.admin.entity.Tenant] for NavigablePath [com.saas.admin.entity.Tenant] 
2025-10-19T16:56:13.616+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.h.q.sqm.sql.BaseSqmToSqlAstConverter   : Determining mapping-model type for SqmParameter : org.hibernate.query.sqm.tree.expression.SqmJpaCriteriaParameterWrapper@412ead3f
2025-10-19T16:56:13.616+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.h.q.sqm.sql.BaseSqmToSqlAstConverter   : Determining mapping-model type for SqmPath : SqmBasicValuedSimplePath(com.saas.admin.entity.Tenant(34).tenantId) 
2025-10-19T16:56:13.616+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.orm.results.graph.AST      : DomainResult Graph:
 \-EntityResultImpl [com.saas.admin.entity.Tenant(34)]
 |  +-BasicFetch [com.saas.admin.entity.Tenant(34).createdAt]
 |  +-BasicFetch [com.saas.admin.entity.Tenant(34).schemaName]
 |  +-BasicFetch [com.saas.admin.entity.Tenant(34).status]
 |  +-BasicFetch [com.saas.admin.entity.Tenant(34).tenantId]
 |  +-BasicFetch [com.saas.admin.entity.Tenant(34).tenantName]
 |  \-BasicFetch [com.saas.admin.entity.Tenant(34).updatedAt]

2025-10-19T16:56:13.616+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.orm.sql.ast.tree           : SQL AST Tree:
    SelectStatement {
      FromClause {
        StandardTableGroup (t1 : com.saas.admin.entity.Tenant(34)) {
          primaryTableReference : tenants as t1_0
        }
      }
    }

2025-10-19T16:56:13.616+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.orm.sql.exec               : Skipping reading Query result cache data: cache-enabled = false, cache-mode = NORMAL
2025-10-19T16:56:13.616+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.SQL                        : 
    select
        t1_0.id,
        t1_0.created_at,
        t1_0.schema_name,
        t1_0.status,
        t1_0.tenant_id,
        t1_0.tenant_name,
        t1_0.updated_at 
    from
        tenants t1_0 
    where
        t1_0.tenant_id=?
Hibernate: 
    select
        t1_0.id,
        t1_0.created_at,
        t1_0.schema_name,
        t1_0.status,
        t1_0.tenant_id,
        t1_0.tenant_name,
        t1_0.updated_at 
    from
        tenants t1_0 
    where
        t1_0.tenant_id=?
2025-10-19T16:56:13.616+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-1] .s.c.SchemaMultiTenantConnectionProvider : 🔥 getConnection() CALLED with tenantIdentifier: saas_db
2025-10-19T16:56:13.616+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-1] .s.c.SchemaMultiTenantConnectionProvider : ⚡ Executing: USE saas_db
2025-10-19T16:56:13.617+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-1] .s.c.SchemaMultiTenantConnectionProvider : ✅ Successfully switched to database: saas_db
2025-10-19T16:56:13.617+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.orm.results                : Initializer list:
	  com.saas.admin.entity.Tenant(34) -> EntityJoinedFetchInitializer(com.saas.admin.entity.Tenant(34))@1071993412 (SingleTableEntityPersister(com.saas.admin.entity.Tenant))

2025-10-19T16:56:13.618+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.filter.TelnyxTenantResolverFilter  : ✅ TelnyxTenantResolverFilter: Resolved tenant 'e7f7179a-5393-4711-adae-083a22cf9e68' (schema: tenant_clinique_la_rive1_bleue1) for number: +18066983980 - Context remains 'saas_db'
2025-10-19T16:56:13.628+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.security.web.FilterChainProxy        : Securing POST /api/voip/telnyx/texml-response
2025-10-19T16:56:13.634+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.s.security.TenantIdentifierFilter    : 🔒 TenantIdentifierFilter: Tenant already set to 'saas_db', skipping JWT extraction for URI: /api/voip/telnyx/texml-response
2025-10-19T16:56:13.635+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.s.w.a.AnonymousAuthenticationFilter  : Set SecurityContextHolder to anonymous SecurityContext
2025-10-19T16:56:13.638+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.security.web.FilterChainProxy        : Secured POST /api/voip/telnyx/texml-response
2025-10-19T16:56:13.639+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.web.servlet.DispatcherServlet        : POST "/api/voip/telnyx/texml-response", parameters={masked}
2025-10-19T16:56:13.641+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.saas.voip.controller.TelnyxTeXMLController#handleTeXMLRequest(HttpServletRequest, String, String, String, String)
2025-10-19T16:56:13.641+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.j.s.OpenEntityManagerInViewInterceptor : Opening JPA EntityManager in OpenEntityManagerInViewInterceptor
2025-10-19T16:56:13.641+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.s.core.TenantIdentifierResolverImpl  : 🔍 resolveCurrentTenantIdentifier() CALLED - returning: saas_db
2025-10-19T16:56:13.652+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.controller.TelnyxTeXMLController   : === TELNYX TeXML REQUEST ===
2025-10-19T16:56:13.652+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.controller.TelnyxTeXMLController   : 📞 From: +212661979197, To: +18066983980, CallSid: v3:oDowX1mCZBKa_vrGZTghDWQvkq95L1XcRHBr9kS3aapkkxF5Z9QPgg, Status: null
2025-10-19T16:56:13.652+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.controller.TelnyxTeXMLController   : ✅ Using tenant from filter: e7f7179a-5393-4711-adae-083a22cf9e68 (schema: tenant_clinique_la_rive1_bleue1)
2025-10-19T16:56:13.652+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.controller.TelnyxTeXMLController   : 🔄 Switched TenantContext to 'tenant_clinique_la_rive1_bleue1' BEFORE REQUIRES_NEW transaction
2025-10-19T16:56:13.653+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.orm.jpa.JpaTransactionManager        : Found thread-bound EntityManager [SessionImpl(1129821325<open>)] for JPA transaction
2025-10-19T16:56:13.653+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.orm.jpa.JpaTransactionManager        : Creating new transaction with name [com.saas.tenant.service.InboundCallService.saveInTenantSchema]: PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT
2025-10-19T16:56:13.654+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.h.e.t.internal.TransactionImpl         : On TransactionImpl creation, JpaCompliance#isJpaTransactionComplianceEnabled == false
2025-10-19T16:56:13.654+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.h.e.t.internal.TransactionImpl         : begin
2025-10-19T16:56:13.654+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-1] .s.c.SchemaMultiTenantConnectionProvider : 🔥 getConnection() CALLED with tenantIdentifier: saas_db
2025-10-19T16:56:13.654+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-1] .s.c.SchemaMultiTenantConnectionProvider : ⚡ Executing: USE saas_db
2025-10-19T16:56:13.654+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-1] .s.c.SchemaMultiTenantConnectionProvider : ✅ Successfully switched to database: saas_db
2025-10-19T16:56:13.656+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.orm.jpa.JpaTransactionManager        : Exposing JPA transaction as JDBC [org.springframework.orm.jpa.vendor.HibernateJpaDialect$HibernateConnectionHandle@29b20171]
2025-10-19T16:56:13.657+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.orm.jpa.JpaTransactionManager        : Found thread-bound EntityManager [SessionImpl(1129821325<open>)] for JPA transaction
2025-10-19T16:56:13.657+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.orm.jpa.JpaTransactionManager        : Participating in existing transaction
2025-10-19T16:56:13.657+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.h.j.internal.PersistenceUnitUtilImpl   : jakarta.persistence.PersistenceUnitUtil.getIdentifier is only intended to work with enhanced entities (although Hibernate also adapts this support to its proxies); however the passed entity was not enhanced (nor a proxy).. may not be able to read identifier
2025-10-19T16:56:13.661+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.engine.spi.ActionQueue     : Executing identity-insert immediately
2025-10-19T16:56:13.665+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.SQL                        : 
    insert 
    into
        inbound_call_data
        (account_sid, api_version, call_sid, call_status, call_token, called, called_city, called_country, called_state, called_zip, caller, caller_city, caller_country, caller_state, caller_zip, created_at, direction, duration, end_time, forwarded_from, from_city, from_country, from_number, from_state, from_zip, parent_call_sid, recording_sid, recording_url, start_time, stir_verstat, to_city, to_country, to_number, to_state, to_zip, updated_at) 
    values
        (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: 
    insert 
    into
        inbound_call_data
        (account_sid, api_version, call_sid, call_status, call_token, called, called_city, called_country, called_state, called_zip, caller, caller_city, caller_country, caller_state, caller_zip, created_at, direction, duration, end_time, forwarded_from, from_city, from_country, from_number, from_state, from_zip, parent_call_sid, recording_sid, recording_url, start_time, stir_verstat, to_city, to_country, to_number, to_state, to_zip, updated_at) 
    values
        (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2025-10-19T16:56:13.673+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.orm.results                : Initializer list is empty
2025-10-19T16:56:13.673+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.h.id.IdentifierGeneratorHelper         : Extracted generated values [com.saas.tenant.entity.InboundCallData]: [Ljava.lang.Object;@4c284c10
2025-10-19T16:56:13.675+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.tenant.service.InboundCallService    : 💾 Call data saved to TENANT schema 'tenant_clinique_la_rive1_bleue1' - CallSid: v3:oDowX1mCZBKa_vrGZTghDWQvkq95L1XcRHBr9kS3aapkkxF5Z9QPgg, From: +212661979197, To: +18066983980
2025-10-19T16:56:13.675+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.orm.jpa.JpaTransactionManager        : Initiating transaction commit
2025-10-19T16:56:13.675+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.orm.jpa.JpaTransactionManager        : Committing JPA transaction on EntityManager [SessionImpl(1129821325<open>)]
2025-10-19T16:56:13.675+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.h.e.t.internal.TransactionImpl         : committing
2025-10-19T16:56:13.675+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.h.e.i.AbstractFlushingEventListener    : Processing flush-time cascades
2025-10-19T16:56:13.675+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.h.e.i.AbstractFlushingEventListener    : Dirty checking collections
2025-10-19T16:56:13.677+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.h.e.i.AbstractFlushingEventListener    : Flushed: 0 insertions, 0 updates, 0 deletions to 1 objects
2025-10-19T16:56:13.677+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.h.e.i.AbstractFlushingEventListener    : Flushed: 0 (re)creations, 0 updates, 0 removals to 0 collections
2025-10-19T16:56:13.678+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.hibernate.internal.util.EntityPrinter  : Listing entities:
2025-10-19T16:56:13.678+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.hibernate.internal.util.EntityPrinter  : com.saas.tenant.entity.InboundCallData{callerCountry=null, called=null, fromZip=null, stirVerstat=null, parentCallSid=null, callerState=null, duration=null, createdAt=2025-10-19T16:56:13.662943, toState=null, apiVersion=null, recordingSid=null, callStatus=initiated, calledZip=null, startTime=2025-10-19T16:56:13.652538, id=5, direction=inbound, updatedAt=2025-10-19T16:56:13.662969, callerCity=null, fromState=null, callSid=v3:oDowX1mCZBKa_vrGZTghDWQvkq95L1XcRHBr9kS3aapkkxF5Z9QPgg, fromCountry=null, calledCity=null, toCity=null, calledCountry=null, callerZip=null, toCountry=null, calledState=null, fromNumber=+212661979197, toZip=null, callToken=null, caller=null, recordingUrl=null, endTime=null, forwardedFrom=null, accountSid=null, fromCity=null, toNumber=+18066983980}
2025-10-19T16:56:13.680+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.orm.jpa.JpaTransactionManager        : Not closing pre-bound JPA EntityManager after transaction
2025-10-19T16:56:13.680+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.controller.TelnyxTeXMLController   : ✅ Telnyx call data saved to tenant schema: tenant_clinique_la_rive1_bleue1
2025-10-19T16:56:13.680+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.controller.TelnyxTeXMLController   : 🔄 Restored TenantContext to 'saas_db'
2025-10-19T16:56:13.680+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.orm.jpa.JpaTransactionManager        : Found thread-bound EntityManager [SessionImpl(1129821325<open>)] for JPA transaction
2025-10-19T16:56:13.680+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.orm.jpa.JpaTransactionManager        : Creating new transaction with name [com.saas.shared.service.TenantVoipConfigRuntimeService.resolveVoipConfig]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT,readOnly
2025-10-19T16:56:13.681+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.jdbc.datasource.DataSourceUtils      : Setting JDBC Connection [HikariProxyConnection@1238100530 wrapping com.mysql.cj.jdbc.ConnectionImpl@30adae45] read-only
2025-10-19T16:56:13.681+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.h.e.t.internal.TransactionImpl         : begin
2025-10-19T16:56:13.681+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.orm.jpa.JpaTransactionManager        : Exposing JPA transaction as JDBC [org.springframework.orm.jpa.vendor.HibernateJpaDialect$HibernateConnectionHandle@28cac1c4]
2025-10-19T16:56:13.681+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.s.s.TenantVoipConfigRuntimeService   : 🔍 Resolving VoIP config for tenant: e7f7179a-5393-4711-adae-083a22cf9e68, provider: TELNYX
2025-10-19T16:56:13.682+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.orm.sql.ast.create         : Created new SQL alias : tvc1_0
2025-10-19T16:56:13.682+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.orm.sql.ast.create         : Registration of TableGroup [StandardTableGroup(com.saas.admin.entity.TenantVoipConfig(90))] with identifierForTableGroup [com.saas.admin.entity.TenantVoipConfig] for NavigablePath [com.saas.admin.entity.TenantVoipConfig] 
2025-10-19T16:56:13.682+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.h.q.sqm.sql.BaseSqmToSqlAstConverter   : Determining mapping-model type for SqmParameter : org.hibernate.query.sqm.tree.expression.SqmJpaCriteriaParameterWrapper@1efb0774
2025-10-19T16:56:13.682+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.h.q.sqm.sql.BaseSqmToSqlAstConverter   : Determining mapping-model type for SqmPath : SqmBasicValuedSimplePath(com.saas.admin.entity.TenantVoipConfig(90).tenantId) 
2025-10-19T16:56:13.682+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.h.q.sqm.sql.BaseSqmToSqlAstConverter   : Determining mapping-model type for SqmParameter : org.hibernate.query.sqm.tree.expression.SqmJpaCriteriaParameterWrapper@28917589
2025-10-19T16:56:13.682+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.h.q.sqm.sql.BaseSqmToSqlAstConverter   : Determining mapping-model type for SqmPath : SqmBasicValuedSimplePath(com.saas.admin.entity.TenantVoipConfig(90).provider) 
2025-10-19T16:56:13.683+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.h.q.sqm.sql.BaseSqmToSqlAstConverter   : Determining mapping-model type for SqmParameter : org.hibernate.query.sqm.tree.expression.SqmJpaCriteriaParameterWrapper@870ed8
2025-10-19T16:56:13.683+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.h.q.sqm.sql.BaseSqmToSqlAstConverter   : Determining mapping-model type for SqmPath : SqmBasicValuedSimplePath(com.saas.admin.entity.TenantVoipConfig(90).isActive) 
2025-10-19T16:56:13.683+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.orm.results.graph.AST      : DomainResult Graph:
 \-EntityResultImpl [com.saas.admin.entity.TenantVoipConfig(90)]
 |  +-BasicFetch [com.saas.admin.entity.TenantVoipConfig(90).aiAssistantId]
 |  +-BasicFetch [com.saas.admin.entity.TenantVoipConfig(90).aiType]
 |  +-BasicFetch [com.saas.admin.entity.TenantVoipConfig(90).createdAt]
 |  +-BasicFetch [com.saas.admin.entity.TenantVoipConfig(90).isActive]
 |  +-BasicFetch [com.saas.admin.entity.TenantVoipConfig(90).messagingProfileId]
 |  +-BasicFetch [com.saas.admin.entity.TenantVoipConfig(90).metadata]
 |  +-BasicFetch [com.saas.admin.entity.TenantVoipConfig(90).provider]
 |  +-BasicFetch [com.saas.admin.entity.TenantVoipConfig(90).streamUrl]
 |  +-BasicFetch [com.saas.admin.entity.TenantVoipConfig(90).tenantId]
 |  \-BasicFetch [com.saas.admin.entity.TenantVoipConfig(90).updatedAt]

2025-10-19T16:56:13.683+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.orm.sql.ast.tree           : SQL AST Tree:
    SelectStatement {
      FromClause {
        StandardTableGroup (tvc1 : com.saas.admin.entity.TenantVoipConfig(90)) {
          primaryTableReference : tenant_voip_configs as tvc1_0
        }
      }
    }

2025-10-19T16:56:13.683+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.orm.sql.exec               : Skipping reading Query result cache data: cache-enabled = false, cache-mode = NORMAL
2025-10-19T16:56:13.683+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.SQL                        : 
    select
        tvc1_0.id,
        tvc1_0.ai_assistant_id,
        tvc1_0.ai_type,
        tvc1_0.created_at,
        tvc1_0.is_active,
        tvc1_0.messaging_profile_id,
        tvc1_0.metadata,
        tvc1_0.provider,
        tvc1_0.stream_url,
        tvc1_0.tenant_id,
        tvc1_0.updated_at 
    from
        tenant_voip_configs tvc1_0 
    where
        tvc1_0.tenant_id=? 
        and tvc1_0.provider=? 
        and tvc1_0.is_active=?
Hibernate: 
    select
        tvc1_0.id,
        tvc1_0.ai_assistant_id,
        tvc1_0.ai_type,
        tvc1_0.created_at,
        tvc1_0.is_active,
        tvc1_0.messaging_profile_id,
        tvc1_0.metadata,
        tvc1_0.provider,
        tvc1_0.stream_url,
        tvc1_0.tenant_id,
        tvc1_0.updated_at 
    from
        tenant_voip_configs tvc1_0 
    where
        tvc1_0.tenant_id=? 
        and tvc1_0.provider=? 
        and tvc1_0.is_active=?
2025-10-19T16:56:13.684+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] org.hibernate.orm.results                : Initializer list:
	  com.saas.admin.entity.TenantVoipConfig(90) -> EntityJoinedFetchInitializer(com.saas.admin.entity.TenantVoipConfig(90))@1532345311 (SingleTableEntityPersister(com.saas.admin.entity.TenantVoipConfig))

2025-10-19T16:56:13.684+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.s.s.TenantVoipConfigRuntimeService   : ⚠️ No active config in DB, attempting environment variable fallback
2025-10-19T16:56:13.684+01:00  WARN 4612 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.s.s.TenantVoipConfigRuntimeService   : ⚠️ No Telnyx environment variables configured
2025-10-19T16:56:13.684+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.orm.jpa.JpaTransactionManager        : Initiating transaction commit
2025-10-19T16:56:13.684+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.orm.jpa.JpaTransactionManager        : Committing JPA transaction on EntityManager [SessionImpl(1129821325<open>)]
2025-10-19T16:56:13.684+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.h.e.t.internal.TransactionImpl         : committing
2025-10-19T16:56:13.685+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.jdbc.datasource.DataSourceUtils      : Resetting read-only flag of JDBC Connection [HikariProxyConnection@1238100530 wrapping com.mysql.cj.jdbc.ConnectionImpl@30adae45]
2025-10-19T16:56:13.685+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.orm.jpa.JpaTransactionManager        : Not closing pre-bound JPA EntityManager after transaction
2025-10-19T16:56:13.685+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.controller.TelnyxTeXMLController   : 📋 VoIP Config loaded for tenant: e7f7179a-5393-4711-adae-083a22cf9e68 - Type: N/A, AssistantID: N/A
2025-10-19T16:56:13.685+01:00  WARN 4612 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.controller.TelnyxTeXMLController   : ⚠️ No VoIP configuration found for tenant: e7f7179a-5393-4711-adae-083a22cf9e68
2025-10-19T16:56:13.690+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] m.m.a.RequestResponseBodyMethodProcessor : Using 'application/xml', given [*/*] and supported [application/xml]
2025-10-19T16:56:13.690+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] m.m.a.RequestResponseBodyMethodProcessor : Writing ["<?xml version="1.0" encoding="UTF-8"?><EOL><Response><EOL>  <Say language="fr-FR">Configuration VoIP non tro (truncated)..."]
2025-10-19T16:56:13.693+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.j.s.OpenEntityManagerInViewInterceptor : Closing JPA EntityManager in OpenEntityManagerInViewInterceptor
2025-10-19T16:56:13.693+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.web.servlet.DispatcherServlet        : Completed 200 OK
2025-10-19T16:56:13.694+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.s.security.TenantIdentifierFilter    : 🧹 TenantIdentifierFilter: Cleared TenantContext after request
2025-10-19T16:56:13.694+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.filter.TelnyxTenantResolverFilter  : 🧹 TelnyxTenantResolverFilter: Cleared TenantContext
2025-10-19T16:56:17.533+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] c.s.v.filter.TelnyxTenantResolverFilter  : 🎯 TelnyxTenantResolverFilter: Intercepting webhook: /api/voip/telnyx/incoming-call
2025-10-19T16:56:17.534+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] tor$SharedEntityManagerInvocationHandler : Creating new EntityManager for shared EntityManager invocation
2025-10-19T16:56:17.534+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-2] c.s.s.core.TenantIdentifierResolverImpl  : 🔍 resolveCurrentTenantIdentifier() CALLED - returning: saas_db
2025-10-19T16:56:17.535+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] org.hibernate.orm.sql.ast.create         : Created new SQL alias : pn1_0
2025-10-19T16:56:17.535+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] org.hibernate.orm.sql.ast.create         : Registration of TableGroup [StandardTableGroup(com.saas.admin.entity.PhoneNumber(26))] with identifierForTableGroup [com.saas.admin.entity.PhoneNumber] for NavigablePath [com.saas.admin.entity.PhoneNumber] 
2025-10-19T16:56:17.535+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] o.h.q.sqm.sql.BaseSqmToSqlAstConverter   : Determining mapping-model type for SqmParameter : org.hibernate.query.sqm.tree.expression.SqmJpaCriteriaParameterWrapper@6f80cb46
2025-10-19T16:56:17.535+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] o.h.q.sqm.sql.BaseSqmToSqlAstConverter   : Determining mapping-model type for SqmPath : SqmBasicValuedSimplePath(com.saas.admin.entity.PhoneNumber(26).phoneNumber) 
2025-10-19T16:56:17.535+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] org.hibernate.orm.results.graph.AST      : DomainResult Graph:
 \-EntityResultImpl [com.saas.admin.entity.PhoneNumber(26)]
 |  +-BasicFetch [com.saas.admin.entity.PhoneNumber(26).createdAt]
 |  +-BasicFetch [com.saas.admin.entity.PhoneNumber(26).description]
 |  +-BasicFetch [com.saas.admin.entity.PhoneNumber(26).friendlyName]
 |  +-BasicFetch [com.saas.admin.entity.PhoneNumber(26).isActive]
 |  +-BasicFetch [com.saas.admin.entity.PhoneNumber(26).phoneNumber]
 |  +-BasicFetch [com.saas.admin.entity.PhoneNumber(26).provider]
 |  +-BasicFetch [com.saas.admin.entity.PhoneNumber(26).tenantId]
 |  \-BasicFetch [com.saas.admin.entity.PhoneNumber(26).updatedAt]

2025-10-19T16:56:17.535+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] org.hibernate.orm.sql.ast.tree           : SQL AST Tree:
    SelectStatement {
      FromClause {
        StandardTableGroup (pn1 : com.saas.admin.entity.PhoneNumber(26)) {
          primaryTableReference : phone_numbers as pn1_0
        }
      }
    }

2025-10-19T16:56:17.535+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] org.hibernate.orm.sql.exec               : Skipping reading Query result cache data: cache-enabled = false, cache-mode = NORMAL
2025-10-19T16:56:17.535+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] org.hibernate.SQL                        : 
    select
        pn1_0.id,
        pn1_0.created_at,
        pn1_0.description,
        pn1_0.friendly_name,
        pn1_0.is_active,
        pn1_0.phone_number,
        pn1_0.provider,
        pn1_0.tenant_id,
        pn1_0.updated_at 
    from
        phone_numbers pn1_0 
    where
        pn1_0.phone_number=?
Hibernate: 
    select
        pn1_0.id,
        pn1_0.created_at,
        pn1_0.description,
        pn1_0.friendly_name,
        pn1_0.is_active,
        pn1_0.phone_number,
        pn1_0.provider,
        pn1_0.tenant_id,
        pn1_0.updated_at 
    from
        phone_numbers pn1_0 
    where
        pn1_0.phone_number=?
2025-10-19T16:56:17.536+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-2] .s.c.SchemaMultiTenantConnectionProvider : 🔥 getConnection() CALLED with tenantIdentifier: saas_db
2025-10-19T16:56:17.536+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-2] .s.c.SchemaMultiTenantConnectionProvider : ⚡ Executing: USE saas_db
2025-10-19T16:56:17.536+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-2] .s.c.SchemaMultiTenantConnectionProvider : ✅ Successfully switched to database: saas_db
2025-10-19T16:56:17.538+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] org.hibernate.orm.results                : Initializer list:
	  com.saas.admin.entity.PhoneNumber(26) -> EntityJoinedFetchInitializer(com.saas.admin.entity.PhoneNumber(26))@286263224 (SingleTableEntityPersister(com.saas.admin.entity.PhoneNumber))

2025-10-19T16:56:17.540+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] tor$SharedEntityManagerInvocationHandler : Creating new EntityManager for shared EntityManager invocation
2025-10-19T16:56:17.540+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-2] c.s.s.core.TenantIdentifierResolverImpl  : 🔍 resolveCurrentTenantIdentifier() CALLED - returning: saas_db
2025-10-19T16:56:17.540+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] org.hibernate.orm.sql.ast.create         : Created new SQL alias : t1_0
2025-10-19T16:56:17.541+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] org.hibernate.orm.sql.ast.create         : Registration of TableGroup [StandardTableGroup(com.saas.admin.entity.Tenant(34))] with identifierForTableGroup [com.saas.admin.entity.Tenant] for NavigablePath [com.saas.admin.entity.Tenant] 
2025-10-19T16:56:17.541+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] o.h.q.sqm.sql.BaseSqmToSqlAstConverter   : Determining mapping-model type for SqmParameter : org.hibernate.query.sqm.tree.expression.SqmJpaCriteriaParameterWrapper@2acd91f0
2025-10-19T16:56:17.541+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] o.h.q.sqm.sql.BaseSqmToSqlAstConverter   : Determining mapping-model type for SqmPath : SqmBasicValuedSimplePath(com.saas.admin.entity.Tenant(34).tenantId) 
2025-10-19T16:56:17.541+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] org.hibernate.orm.results.graph.AST      : DomainResult Graph:
 \-EntityResultImpl [com.saas.admin.entity.Tenant(34)]
 |  +-BasicFetch [com.saas.admin.entity.Tenant(34).createdAt]
 |  +-BasicFetch [com.saas.admin.entity.Tenant(34).schemaName]
 |  +-BasicFetch [com.saas.admin.entity.Tenant(34).status]
 |  +-BasicFetch [com.saas.admin.entity.Tenant(34).tenantId]
 |  +-BasicFetch [com.saas.admin.entity.Tenant(34).tenantName]
 |  \-BasicFetch [com.saas.admin.entity.Tenant(34).updatedAt]

2025-10-19T16:56:17.541+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] org.hibernate.orm.sql.ast.tree           : SQL AST Tree:
    SelectStatement {
      FromClause {
        StandardTableGroup (t1 : com.saas.admin.entity.Tenant(34)) {
          primaryTableReference : tenants as t1_0
        }
      }
    }

2025-10-19T16:56:17.541+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] org.hibernate.orm.sql.exec               : Skipping reading Query result cache data: cache-enabled = false, cache-mode = NORMAL
2025-10-19T16:56:17.542+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] org.hibernate.SQL                        : 
    select
        t1_0.id,
        t1_0.created_at,
        t1_0.schema_name,
        t1_0.status,
        t1_0.tenant_id,
        t1_0.tenant_name,
        t1_0.updated_at 
    from
        tenants t1_0 
    where
        t1_0.tenant_id=?
Hibernate: 
    select
        t1_0.id,
        t1_0.created_at,
        t1_0.schema_name,
        t1_0.status,
        t1_0.tenant_id,
        t1_0.tenant_name,
        t1_0.updated_at 
    from
        tenants t1_0 
    where
        t1_0.tenant_id=?
2025-10-19T16:56:17.542+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-2] .s.c.SchemaMultiTenantConnectionProvider : 🔥 getConnection() CALLED with tenantIdentifier: saas_db
2025-10-19T16:56:17.542+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-2] .s.c.SchemaMultiTenantConnectionProvider : ⚡ Executing: USE saas_db
2025-10-19T16:56:17.542+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-2] .s.c.SchemaMultiTenantConnectionProvider : ✅ Successfully switched to database: saas_db
2025-10-19T16:56:17.543+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] org.hibernate.orm.results                : Initializer list:
	  com.saas.admin.entity.Tenant(34) -> EntityJoinedFetchInitializer(com.saas.admin.entity.Tenant(34))@1799971315 (SingleTableEntityPersister(com.saas.admin.entity.Tenant))

2025-10-19T16:56:17.545+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-2] c.s.v.filter.TelnyxTenantResolverFilter  : ✅ TelnyxTenantResolverFilter: Resolved tenant 'e7f7179a-5393-4711-adae-083a22cf9e68' (schema: tenant_clinique_la_rive1_bleue1) for number: +18066983980 - Context remains 'saas_db'
2025-10-19T16:56:17.546+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] o.s.security.web.FilterChainProxy        : Securing POST /api/voip/telnyx/incoming-call
2025-10-19T16:56:17.547+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] c.s.s.security.TenantIdentifierFilter    : 🔒 TenantIdentifierFilter: Tenant already set to 'saas_db', skipping JWT extraction for URI: /api/voip/telnyx/incoming-call
2025-10-19T16:56:17.547+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] o.s.s.w.a.AnonymousAuthenticationFilter  : Set SecurityContextHolder to anonymous SecurityContext
2025-10-19T16:56:17.548+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] o.s.security.web.FilterChainProxy        : Secured POST /api/voip/telnyx/incoming-call
2025-10-19T16:56:17.548+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] o.s.web.servlet.DispatcherServlet        : POST "/api/voip/telnyx/incoming-call", parameters={masked}
2025-10-19T16:56:17.548+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.saas.voip.controller.TelnyxVoiceController#handleIncomingCall(HttpServletRequest, Map)
2025-10-19T16:56:17.549+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] o.j.s.OpenEntityManagerInViewInterceptor : Opening JPA EntityManager in OpenEntityManagerInViewInterceptor
2025-10-19T16:56:17.549+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-2] c.s.s.core.TenantIdentifierResolverImpl  : 🔍 resolveCurrentTenantIdentifier() CALLED - returning: saas_db
2025-10-19T16:56:17.553+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] o.s.web.method.HandlerMethod             : Could not resolve parameter [1] in public java.util.Map<java.lang.String, java.lang.Object> com.saas.voip.controller.TelnyxVoiceController.handleIncomingCall(jakarta.servlet.http.HttpServletRequest,java.util.Map<java.lang.String, java.lang.Object>): Content-Type 'application/x-www-form-urlencoded;charset=UTF-8' is not supported
2025-10-19T16:56:17.554+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.saas.shared.exception.GlobalExceptionHandler#handleGeneric(Exception, HttpServletRequest)
2025-10-19T16:56:17.554+01:00 ERROR 4612 --- [saas-multitenant-api] [nio-7001-exec-2] c.s.s.exception.GlobalExceptionHandler   : Unhandled exception

org.springframework.web.HttpMediaTypeNotSupportedException: Content-Type 'application/x-www-form-urlencoded;charset=UTF-8' is not supported
	at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:236)
	at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:176)
	at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:150)
	at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)
	at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:227)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:181)
	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.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.TenantIdentifierFilter.doFilterInternal(TenantIdentifierFilter.java:57)
	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 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 com.saas.voip.filter.TelnyxTenantResolverFilter.doFilterInternal(TelnyxTenantResolverFilter.java:89)
	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-19T16:56:17.563+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] 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-19T16:56:17.564+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] o.s.w.s.m.m.a.HttpEntityMethodProcessor  : Writing [ApiResponse(success=false, message=An unexpected error occurred, data=ErrorResponse(errorCode=SYS_00 (truncated)...]
2025-10-19T16:56:17.571+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content-Type 'application/x-www-form-urlencoded;charset=UTF-8' is not supported]
2025-10-19T16:56:17.571+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] o.j.s.OpenEntityManagerInViewInterceptor : Closing JPA EntityManager in OpenEntityManagerInViewInterceptor
2025-10-19T16:56:17.571+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] o.s.web.servlet.DispatcherServlet        : Completed 500 INTERNAL_SERVER_ERROR
2025-10-19T16:56:17.572+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] c.s.s.security.TenantIdentifierFilter    : 🧹 TenantIdentifierFilter: Cleared TenantContext after request
2025-10-19T16:56:17.572+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-2] c.s.v.filter.TelnyxTenantResolverFilter  : 🧹 TelnyxTenantResolverFilter: Cleared TenantContext
2025-10-19T16:56:17.865+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.v.filter.TelnyxTenantResolverFilter  : 🎯 TelnyxTenantResolverFilter: Intercepting webhook: /api/voip/telnyx/incoming-call
2025-10-19T16:56:17.865+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] tor$SharedEntityManagerInvocationHandler : Creating new EntityManager for shared EntityManager invocation
2025-10-19T16:56:17.865+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.s.core.TenantIdentifierResolverImpl  : 🔍 resolveCurrentTenantIdentifier() CALLED - returning: saas_db
2025-10-19T16:56:17.865+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] org.hibernate.orm.sql.ast.create         : Created new SQL alias : pn1_0
2025-10-19T16:56:17.865+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] org.hibernate.orm.sql.ast.create         : Registration of TableGroup [StandardTableGroup(com.saas.admin.entity.PhoneNumber(26))] with identifierForTableGroup [com.saas.admin.entity.PhoneNumber] for NavigablePath [com.saas.admin.entity.PhoneNumber] 
2025-10-19T16:56:17.866+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] o.h.q.sqm.sql.BaseSqmToSqlAstConverter   : Determining mapping-model type for SqmParameter : org.hibernate.query.sqm.tree.expression.SqmJpaCriteriaParameterWrapper@75e5fd55
2025-10-19T16:56:17.866+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] o.h.q.sqm.sql.BaseSqmToSqlAstConverter   : Determining mapping-model type for SqmPath : SqmBasicValuedSimplePath(com.saas.admin.entity.PhoneNumber(26).phoneNumber) 
2025-10-19T16:56:17.866+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] org.hibernate.orm.results.graph.AST      : DomainResult Graph:
 \-EntityResultImpl [com.saas.admin.entity.PhoneNumber(26)]
 |  +-BasicFetch [com.saas.admin.entity.PhoneNumber(26).createdAt]
 |  +-BasicFetch [com.saas.admin.entity.PhoneNumber(26).description]
 |  +-BasicFetch [com.saas.admin.entity.PhoneNumber(26).friendlyName]
 |  +-BasicFetch [com.saas.admin.entity.PhoneNumber(26).isActive]
 |  +-BasicFetch [com.saas.admin.entity.PhoneNumber(26).phoneNumber]
 |  +-BasicFetch [com.saas.admin.entity.PhoneNumber(26).provider]
 |  +-BasicFetch [com.saas.admin.entity.PhoneNumber(26).tenantId]
 |  \-BasicFetch [com.saas.admin.entity.PhoneNumber(26).updatedAt]

2025-10-19T16:56:17.866+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] org.hibernate.orm.sql.ast.tree           : SQL AST Tree:
    SelectStatement {
      FromClause {
        StandardTableGroup (pn1 : com.saas.admin.entity.PhoneNumber(26)) {
          primaryTableReference : phone_numbers as pn1_0
        }
      }
    }

2025-10-19T16:56:17.866+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] org.hibernate.orm.sql.exec               : Skipping reading Query result cache data: cache-enabled = false, cache-mode = NORMAL
2025-10-19T16:56:17.866+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] org.hibernate.SQL                        : 
    select
        pn1_0.id,
        pn1_0.created_at,
        pn1_0.description,
        pn1_0.friendly_name,
        pn1_0.is_active,
        pn1_0.phone_number,
        pn1_0.provider,
        pn1_0.tenant_id,
        pn1_0.updated_at 
    from
        phone_numbers pn1_0 
    where
        pn1_0.phone_number=?
Hibernate: 
    select
        pn1_0.id,
        pn1_0.created_at,
        pn1_0.description,
        pn1_0.friendly_name,
        pn1_0.is_active,
        pn1_0.phone_number,
        pn1_0.provider,
        pn1_0.tenant_id,
        pn1_0.updated_at 
    from
        phone_numbers pn1_0 
    where
        pn1_0.phone_number=?
2025-10-19T16:56:17.866+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-3] .s.c.SchemaMultiTenantConnectionProvider : 🔥 getConnection() CALLED with tenantIdentifier: saas_db
2025-10-19T16:56:17.866+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-3] .s.c.SchemaMultiTenantConnectionProvider : ⚡ Executing: USE saas_db
2025-10-19T16:56:17.866+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-3] .s.c.SchemaMultiTenantConnectionProvider : ✅ Successfully switched to database: saas_db
2025-10-19T16:56:17.867+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] org.hibernate.orm.results                : Initializer list:
	  com.saas.admin.entity.PhoneNumber(26) -> EntityJoinedFetchInitializer(com.saas.admin.entity.PhoneNumber(26))@200269236 (SingleTableEntityPersister(com.saas.admin.entity.PhoneNumber))

2025-10-19T16:56:17.868+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] tor$SharedEntityManagerInvocationHandler : Creating new EntityManager for shared EntityManager invocation
2025-10-19T16:56:17.869+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.s.core.TenantIdentifierResolverImpl  : 🔍 resolveCurrentTenantIdentifier() CALLED - returning: saas_db
2025-10-19T16:56:17.869+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] org.hibernate.orm.sql.ast.create         : Created new SQL alias : t1_0
2025-10-19T16:56:17.869+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] org.hibernate.orm.sql.ast.create         : Registration of TableGroup [StandardTableGroup(com.saas.admin.entity.Tenant(34))] with identifierForTableGroup [com.saas.admin.entity.Tenant] for NavigablePath [com.saas.admin.entity.Tenant] 
2025-10-19T16:56:17.869+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] o.h.q.sqm.sql.BaseSqmToSqlAstConverter   : Determining mapping-model type for SqmParameter : org.hibernate.query.sqm.tree.expression.SqmJpaCriteriaParameterWrapper@354a163
2025-10-19T16:56:17.869+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] o.h.q.sqm.sql.BaseSqmToSqlAstConverter   : Determining mapping-model type for SqmPath : SqmBasicValuedSimplePath(com.saas.admin.entity.Tenant(34).tenantId) 
2025-10-19T16:56:17.869+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] org.hibernate.orm.results.graph.AST      : DomainResult Graph:
 \-EntityResultImpl [com.saas.admin.entity.Tenant(34)]
 |  +-BasicFetch [com.saas.admin.entity.Tenant(34).createdAt]
 |  +-BasicFetch [com.saas.admin.entity.Tenant(34).schemaName]
 |  +-BasicFetch [com.saas.admin.entity.Tenant(34).status]
 |  +-BasicFetch [com.saas.admin.entity.Tenant(34).tenantId]
 |  +-BasicFetch [com.saas.admin.entity.Tenant(34).tenantName]
 |  \-BasicFetch [com.saas.admin.entity.Tenant(34).updatedAt]

2025-10-19T16:56:17.869+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] org.hibernate.orm.sql.ast.tree           : SQL AST Tree:
    SelectStatement {
      FromClause {
        StandardTableGroup (t1 : com.saas.admin.entity.Tenant(34)) {
          primaryTableReference : tenants as t1_0
        }
      }
    }

2025-10-19T16:56:17.869+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] org.hibernate.orm.sql.exec               : Skipping reading Query result cache data: cache-enabled = false, cache-mode = NORMAL
2025-10-19T16:56:17.869+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] org.hibernate.SQL                        : 
    select
        t1_0.id,
        t1_0.created_at,
        t1_0.schema_name,
        t1_0.status,
        t1_0.tenant_id,
        t1_0.tenant_name,
        t1_0.updated_at 
    from
        tenants t1_0 
    where
        t1_0.tenant_id=?
Hibernate: 
    select
        t1_0.id,
        t1_0.created_at,
        t1_0.schema_name,
        t1_0.status,
        t1_0.tenant_id,
        t1_0.tenant_name,
        t1_0.updated_at 
    from
        tenants t1_0 
    where
        t1_0.tenant_id=?
2025-10-19T16:56:17.869+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-3] .s.c.SchemaMultiTenantConnectionProvider : 🔥 getConnection() CALLED with tenantIdentifier: saas_db
2025-10-19T16:56:17.869+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-3] .s.c.SchemaMultiTenantConnectionProvider : ⚡ Executing: USE saas_db
2025-10-19T16:56:17.870+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-3] .s.c.SchemaMultiTenantConnectionProvider : ✅ Successfully switched to database: saas_db
2025-10-19T16:56:17.870+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] org.hibernate.orm.results                : Initializer list:
	  com.saas.admin.entity.Tenant(34) -> EntityJoinedFetchInitializer(com.saas.admin.entity.Tenant(34))@508415670 (SingleTableEntityPersister(com.saas.admin.entity.Tenant))

2025-10-19T16:56:17.871+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.v.filter.TelnyxTenantResolverFilter  : ✅ TelnyxTenantResolverFilter: Resolved tenant 'e7f7179a-5393-4711-adae-083a22cf9e68' (schema: tenant_clinique_la_rive1_bleue1) for number: +18066983980 - Context remains 'saas_db'
2025-10-19T16:56:17.872+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] o.s.security.web.FilterChainProxy        : Securing POST /api/voip/telnyx/incoming-call
2025-10-19T16:56:17.872+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.s.security.TenantIdentifierFilter    : 🔒 TenantIdentifierFilter: Tenant already set to 'saas_db', skipping JWT extraction for URI: /api/voip/telnyx/incoming-call
2025-10-19T16:56:17.872+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] o.s.s.w.a.AnonymousAuthenticationFilter  : Set SecurityContextHolder to anonymous SecurityContext
2025-10-19T16:56:17.872+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] o.s.security.web.FilterChainProxy        : Secured POST /api/voip/telnyx/incoming-call
2025-10-19T16:56:17.872+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] o.s.web.servlet.DispatcherServlet        : POST "/api/voip/telnyx/incoming-call", parameters={masked}
2025-10-19T16:56:17.872+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.saas.voip.controller.TelnyxVoiceController#handleIncomingCall(HttpServletRequest, Map)
2025-10-19T16:56:17.872+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] o.j.s.OpenEntityManagerInViewInterceptor : Opening JPA EntityManager in OpenEntityManagerInViewInterceptor
2025-10-19T16:56:17.872+01:00  INFO 4612 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.s.core.TenantIdentifierResolverImpl  : 🔍 resolveCurrentTenantIdentifier() CALLED - returning: saas_db
2025-10-19T16:56:17.873+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] o.s.web.method.HandlerMethod             : Could not resolve parameter [1] in public java.util.Map<java.lang.String, java.lang.Object> com.saas.voip.controller.TelnyxVoiceController.handleIncomingCall(jakarta.servlet.http.HttpServletRequest,java.util.Map<java.lang.String, java.lang.Object>): Content-Type 'application/x-www-form-urlencoded;charset=UTF-8' is not supported
2025-10-19T16:56:17.873+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.saas.shared.exception.GlobalExceptionHandler#handleGeneric(Exception, HttpServletRequest)
2025-10-19T16:56:17.873+01:00 ERROR 4612 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.s.exception.GlobalExceptionHandler   : Unhandled exception

org.springframework.web.HttpMediaTypeNotSupportedException: Content-Type 'application/x-www-form-urlencoded;charset=UTF-8' is not supported
	at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:236)
	at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:176)
	at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:150)
	at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)
	at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:227)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:181)
	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.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.TenantIdentifierFilter.doFilterInternal(TenantIdentifierFilter.java:57)
	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 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 com.saas.voip.filter.TelnyxTenantResolverFilter.doFilterInternal(TelnyxTenantResolverFilter.java:89)
	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-19T16:56:17.874+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] 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-19T16:56:17.874+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] o.s.w.s.m.m.a.HttpEntityMethodProcessor  : Writing [ApiResponse(success=false, message=An unexpected error occurred, data=ErrorResponse(errorCode=SYS_00 (truncated)...]
2025-10-19T16:56:17.874+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content-Type 'application/x-www-form-urlencoded;charset=UTF-8' is not supported]
2025-10-19T16:56:17.874+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] o.j.s.OpenEntityManagerInViewInterceptor : Closing JPA EntityManager in OpenEntityManagerInViewInterceptor
2025-10-19T16:56:17.874+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] o.s.web.servlet.DispatcherServlet        : Completed 500 INTERNAL_SERVER_ERROR
2025-10-19T16:56:17.875+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.s.security.TenantIdentifierFilter    : 🧹 TenantIdentifierFilter: Cleared TenantContext after request
2025-10-19T16:56:17.875+01:00 DEBUG 4612 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.v.filter.TelnyxTenantResolverFilter  : 🧹 TelnyxTenantResolverFilter: Cleared TenantContext
