2026-05-03 09:38:09,257 - main - INFO - === Logging system initialized ===
2026-05-03 09:38:09,257 - main - INFO - Log file: logs/app_20260503_093809.log
2026-05-03 09:38:09,257 - main - INFO - Log level: INFO
2026-05-03 09:38:09,257 - main - INFO - Timestamp: 20260503_093809
2026-05-03 09:38:09,348 - main - INFO - Included router: routers.admin_dashboard.router
2026-05-03 09:38:09,394 - main - INFO - Included router: routers.admin_users.router
2026-05-03 09:38:09,433 - main - INFO - Included router: routers.agent_availability.router
2026-05-03 09:38:10,483 - main - INFO - Included router: routers.ai_ticket_summary.router
2026-05-03 09:38:10,507 - main - INFO - Included router: routers.aihub.router
2026-05-03 09:38:10,561 - main - INFO - Included router: routers.api_hub.router
2026-05-03 09:38:10,581 - main - INFO - Included router: routers.audit_log.router
2026-05-03 09:38:10,594 - main - INFO - Included router: routers.auth.router
2026-05-03 09:38:10,696 - main - INFO - Included router: routers.bizmail_admin.router
2026-05-03 09:38:10,771 - main - INFO - Included router: routers.bizmail_client.router
2026-05-03 09:38:10,776 - main - INFO - Included router: routers.bizmail_public.router
2026-05-03 09:38:10,800 - main - INFO - Included router: routers.cache_settings.router
2026-05-03 09:38:10,919 - main - INFO - Included router: routers.carts.router
2026-05-03 09:38:10,968 - main - INFO - Included router: routers.chat_analytics_daily.router
2026-05-03 09:38:11,012 - main - INFO - Included router: routers.chat_attachments.router
2026-05-03 09:38:11,099 - main - INFO - Included router: routers.chat_branding.router
2026-05-03 09:38:11,116 - main - INFO - Included router: routers.chat_branding_api.router
2026-05-03 09:38:11,181 - main - INFO - Included router: routers.chat_conversations.router
2026-05-03 09:38:11,230 - main - INFO - Included router: routers.chat_messages.router
2026-05-03 09:38:11,273 - main - INFO - Included router: routers.chat_routing_rules.router
2026-05-03 09:38:11,295 - main - INFO - Included router: routers.contact.router
2026-05-03 09:38:11,334 - main - INFO - Included router: routers.contact_inquiries.router
2026-05-03 09:38:11,595 - main - INFO - Included router: routers.cpanel_admin.router
2026-05-03 09:38:11,655 - main - INFO - Included router: routers.cpanel_client.router
2026-05-03 09:38:11,659 - main - INFO - Included router: routers.cpanel_public.router
2026-05-03 09:38:11,703 - main - INFO - Included router: routers.ecom_checkout.router
2026-05-03 09:38:11,708 - main - INFO - Included router: routers.health.router
2026-05-03 09:38:11,756 - main - INFO - Included router: routers.kb_article_feedback.router
2026-05-03 09:38:11,797 - main - INFO - Included router: routers.kb_articles.router
2026-05-03 09:38:11,820 - main - INFO - Included router: routers.local_auth.router
2026-05-03 09:38:11,852 - main - INFO - Included router: routers.mfa.router
2026-05-03 09:38:11,926 - main - INFO - Included router: routers.module_sync.router
2026-05-03 09:38:11,971 - main - INFO - Included router: routers.notification_preferences.router
2026-05-03 09:38:12,019 - main - INFO - Included router: routers.notifications.router
2026-05-03 09:38:12,045 - main - INFO - Included router: routers.notifications_extras.router
2026-05-03 09:38:12,133 - main - INFO - Included router: routers.oauth.router
2026-05-03 09:38:12,304 - main - INFO - Included router: routers.order_items.router
2026-05-03 09:38:12,378 - main - INFO - Included router: routers.orders.router
2026-05-03 09:38:12,387 - main - INFO - Included router: routers.password_reset.router
2026-05-03 09:38:12,453 - main - INFO - Included router: routers.plans.router
2026-05-03 09:38:12,503 - main - INFO - Included router: routers.presales_messages.router
2026-05-03 09:38:12,552 - main - INFO - Included router: routers.product_categories.router
2026-05-03 09:38:12,601 - main - INFO - Included router: routers.product_reviews.router
2026-05-03 09:38:12,655 - main - INFO - Included router: routers.products.router
2026-05-03 09:38:12,679 - main - INFO - Included router: routers.role_management.router
2026-05-03 09:38:12,722 - main - INFO - Included router: routers.service_testimonials.router
2026-05-03 09:38:12,742 - main - INFO - Included router: routers.settings.router
2026-05-03 09:38:12,778 - main - INFO - Included router: routers.site_settings.router
2026-05-03 09:38:12,810 - main - INFO - Included router: routers.smtp_settings.router
2026-05-03 09:38:12,845 - main - INFO - Included router: routers.storage.router
2026-05-03 09:38:12,945 - main - INFO - Included router: routers.support_chat.router
2026-05-03 09:38:12,982 - main - INFO - Included router: routers.support_departments.router
2026-05-03 09:38:13,023 - main - INFO - Included router: routers.support_seats.router
2026-05-03 09:38:13,045 - main - INFO - Included router: routers.ticket_notifications_sync.router
2026-05-03 09:38:13,213 - main - INFO - Included router: routers.ticket_summaries.router
2026-05-03 09:38:13,262 - main - INFO - Included router: routers.ticket_sync_states.router
2026-05-03 09:38:13,431 - main - INFO - Included router: routers.uptimerobot_admin.router
2026-05-03 09:38:13,494 - main - INFO - Included router: routers.uptimerobot_client.router
2026-05-03 09:38:13,506 - main - INFO - Included router: routers.user.router
2026-05-03 09:38:13,547 - main - INFO - Included router: routers.user_profiles.router
2026-05-03 09:38:13,585 - main - INFO - Included router: routers.user_roles.router
2026-05-03 09:38:13,695 - main - INFO - Included router: routers.visitor_monitor.router
2026-05-03 09:38:13,707 - main - INFO - Included router: routers.visitor_tracking.router
2026-05-03 09:38:13,768 - main - INFO - Included router: routers.whatsapp_client.router
2026-05-03 09:38:13,774 - main - INFO - Included router: routers.whatsapp_client_ws.router
2026-05-03 09:38:13,791 - main - INFO - Included router: routers.whmcs.router
2026-05-03 09:38:13,858 - main - INFO - Included router: routers.whmcs_admin.router
2026-05-03 09:38:13,895 - main - INFO - Included router: routers.whmcs_extra.router
2026-05-03 09:38:13,897 - main - INFO - === Application startup initiated ===
2026-05-03 09:38:13,897 - services.database - INFO - Ignore creating tables
2026-05-03 09:38:13,897 - services.mock_data - INFO - Ignore initialize data
2026-05-03 09:38:13,897 - services.auth - INFO - Ignore initialize admin
2026-05-03 09:38:13,897 - main - INFO - === Application startup completed successfully ===
2026-05-03 09:38:14,250 - core.database - DEBUG - [DB_OP] Starting get_db session creation
2026-05-03 09:38:14,250 - core.database - WARNING - Database session maker not available, attempting lazy initialization...
2026-05-03 09:38:14,251 - core.database - WARNING - Database not initialized, attempting lazy initialization...
2026-05-03 09:38:14,251 - core.database - INFO - Starting database initialization...
2026-05-03 09:38:14,252 - core.config - DEBUG - Read dynamic attribute database_url from environment variable DATABASE_URL
2026-05-03 09:38:14,252 - core.database - INFO - Normalizing database URL for async compatibility...
2026-05-03 09:38:14,252 - core.database - INFO - Creating async database engine...
2026-05-03 09:38:14,252 - core.database - INFO - Using QueuePool with connection pooling for non-Lambda environment
2026-05-03 09:38:14,309 - core.database - INFO - Database engine created successfully
2026-05-03 09:38:14,309 - core.database - INFO - Creating async session maker...
2026-05-03 09:38:14,309 - core.database - INFO - Async session maker created successfully
2026-05-03 09:38:14,309 - core.database - INFO - Database connection initialized successfully
2026-05-03 09:38:14,309 - core.database - DEBUG - [DB_OP] Starting create_tables
2026-05-03 09:38:14,309 - core.database - INFO - 🔧 Starting table creation...
2026-05-03 09:38:14,314 - core.config - DEBUG - Read dynamic attribute jwt_secret_key from environment variable JWT_SECRET_KEY
2026-05-03 09:38:14,315 - core.config - DEBUG - Read dynamic attribute jwt_algorithm from environment variable JWT_ALGORITHM
2026-05-03 09:38:14,325 - core.auth - DEBUG - Authentication token validated for user hash: f8ef80bf
2026-05-03 09:38:14,330 - core.database - DEBUG - [DB_OP] Starting get_db session creation
2026-05-03 09:38:14,330 - core.database - DEBUG - [DB_OP] Database session created successfully in 0.0003s
2026-05-03 09:38:14,330 - routers.site_settings - DEBUG - Querying site_settingss: query={"key":"general"}, sort=None, skip=0, limit=1, fields=None
2026-05-03 09:38:14,334 - core.database - DEBUG - [DB_OP] Starting get_db session creation
2026-05-03 09:38:14,334 - core.database - DEBUG - [DB_OP] Database session created successfully in 0.0002s
2026-05-03 09:38:14,334 - routers.site_settings - DEBUG - Querying site_settingss: query={"key":"branding"}, sort=None, skip=0, limit=1, fields=None
2026-05-03 09:38:14,592 - core.auth - DEBUG - Authentication token validated for user hash: f8ef80bf
2026-05-03 09:38:14,902 - core.auth - DEBUG - Authentication token validated for user hash: f8ef80bf
2026-05-03 09:38:14,902 - core.database - DEBUG - [DB_OP] Starting get_db session creation
2026-05-03 09:38:14,902 - core.database - DEBUG - [DB_OP] Database session created successfully in 0.0002s
2026-05-03 09:38:14,914 - core.auth - DEBUG - Authentication token validated for user hash: f8ef80bf
2026-05-03 09:38:14,915 - core.database - DEBUG - [DB_OP] Starting get_db session creation
2026-05-03 09:38:14,915 - core.database - DEBUG - [DB_OP] Database session created successfully in 0.0006s
2026-05-03 09:38:15,001 - httpcore.connection - DEBUG - connect_tcp.started host='client.doiteasy.net' port=443 local_address=None timeout=10.0 socket_options=None
2026-05-03 09:38:15,390 - httpcore.connection - DEBUG - connect_tcp.complete return_value=<httpcore._backends.anyio.AnyIOStream object at 0x7f962bcabcd0>
2026-05-03 09:38:15,390 - httpcore.connection - DEBUG - start_tls.started ssl_context=<ssl.SSLContext object at 0x7f9629aeb940> server_hostname='client.doiteasy.net' timeout=10.0
2026-05-03 09:38:15,853 - httpcore.connection - DEBUG - start_tls.complete return_value=<httpcore._backends.anyio.AnyIOStream object at 0x7f9629b87160>
2026-05-03 09:38:15,855 - httpcore.http11 - DEBUG - send_request_headers.started request=<Request [b'POST']>
2026-05-03 09:38:15,855 - httpcore.http11 - DEBUG - send_request_headers.complete
2026-05-03 09:38:15,855 - httpcore.http11 - DEBUG - send_request_body.started request=<Request [b'POST']>
2026-05-03 09:38:15,856 - httpcore.http11 - DEBUG - send_request_body.complete
2026-05-03 09:38:15,856 - httpcore.http11 - DEBUG - receive_response_headers.started request=<Request [b'POST']>
2026-05-03 09:38:16,050 - core.database - DEBUG - [DB_OP] Database session cleanup after 1.1475s
2026-05-03 09:38:16,160 - httpcore.http11 - DEBUG - receive_response_headers.complete return_value=(b'HTTP/1.1', 403, b'Forbidden', [(b'Server', b'nginx'), (b'Date', b'Sun, 03 May 2026 16:38:16 GMT'), (b'Content-Type', b'application/json'), (b'Transfer-Encoding', b'chunked'), (b'Connection', b'keep-alive'), (b'Expires', b'Thu, 19 Nov 1981 08:52:00 GMT'), (b'Cache-Control', b'no-store, no-cache, must-revalidate'), (b'Pragma', b'no-cache'), (b'Set-Cookie', b'WHMCShaXcqDDHD9SP=4ce28b37ef95c74e6fdade393a931726; path=/; secure; HttpOnly'), (b'X-Content-Type-Options', b'nosniff'), (b'X-Frame-Options', b'SAMEORIGIN'), (b'Referrer-Policy', b'strict-origin-when-cross-origin'), (b'X-XSS-Protection', b'1; mode=block')])
2026-05-03 09:38:16,161 - httpx - INFO - HTTP Request: POST https://client.doiteasy.net/includes/api.php "HTTP/1.1 403 Forbidden"
2026-05-03 09:38:16,162 - httpcore.http11 - DEBUG - receive_response_body.started request=<Request [b'POST']>
2026-05-03 09:38:16,162 - httpcore.http11 - DEBUG - receive_response_body.complete
2026-05-03 09:38:16,162 - httpcore.http11 - DEBUG - response_closed.started
2026-05-03 09:38:16,162 - httpcore.http11 - DEBUG - response_closed.complete
2026-05-03 09:38:16,162 - httpcore.connection - DEBUG - close.started
2026-05-03 09:38:16,163 - httpcore.connection - DEBUG - close.complete
2026-05-03 09:38:16,163 - services.whmcs - ERROR - WHMCS API returned HTTP 403 for action GetClients (cf-ray=None server=nginx): {"result":"error","message":"Invalid IP 103.234.62.206"}
2026-05-03 09:38:16,165 - services.whmcs - WARNING - call_whmcs_safe: swallowing WHMCS error for action GetClients: Billing system rejected the request: Invalid IP 103.234.62.206. Please contact the administrator to whitelist the portal's outbound IP in the WHMCS API IP access list.
2026-05-03 09:38:16,194 - httpcore.connection - DEBUG - connect_tcp.started host='client.doiteasy.net' port=443 local_address=None timeout=10.0 socket_options=None
2026-05-03 09:38:16,195 - routers.site_settings - DEBUG - Found 0 site_settingss
2026-05-03 09:38:16,195 - core.database - DEBUG - [DB_OP] Database session cleanup after 1.8656s
2026-05-03 09:38:16,196 - routers.site_settings - DEBUG - Found 0 site_settingss
2026-05-03 09:38:16,196 - core.database - DEBUG - [DB_OP] Database session cleanup after 1.8624s
2026-05-03 09:38:16,540 - httpcore.connection - DEBUG - connect_tcp.complete return_value=<httpcore._backends.anyio.AnyIOStream object at 0x7f9629bb6830>
2026-05-03 09:38:16,540 - httpcore.connection - DEBUG - start_tls.started ssl_context=<ssl.SSLContext object at 0x7f9629bba940> server_hostname='client.doiteasy.net' timeout=10.0
2026-05-03 09:38:16,723 - httpcore.connection - DEBUG - start_tls.complete return_value=<httpcore._backends.anyio.AnyIOStream object at 0x7f962bc176a0>
2026-05-03 09:38:16,724 - httpcore.http11 - DEBUG - send_request_headers.started request=<Request [b'POST']>
2026-05-03 09:38:16,725 - httpcore.http11 - DEBUG - send_request_headers.complete
2026-05-03 09:38:16,725 - httpcore.http11 - DEBUG - send_request_body.started request=<Request [b'POST']>
2026-05-03 09:38:16,725 - httpcore.http11 - DEBUG - send_request_body.complete
2026-05-03 09:38:16,726 - httpcore.http11 - DEBUG - receive_response_headers.started request=<Request [b'POST']>
2026-05-03 09:38:17,054 - httpcore.http11 - DEBUG - receive_response_headers.complete return_value=(b'HTTP/1.1', 403, b'Forbidden', [(b'Server', b'nginx'), (b'Date', b'Sun, 03 May 2026 16:38:16 GMT'), (b'Content-Type', b'application/json'), (b'Transfer-Encoding', b'chunked'), (b'Connection', b'keep-alive'), (b'Expires', b'Thu, 19 Nov 1981 08:52:00 GMT'), (b'Cache-Control', b'no-store, no-cache, must-revalidate'), (b'Pragma', b'no-cache'), (b'Set-Cookie', b'WHMCShaXcqDDHD9SP=3e88701f84f7da39f96119011efef77f; path=/; secure; HttpOnly'), (b'X-Content-Type-Options', b'nosniff'), (b'X-Frame-Options', b'SAMEORIGIN'), (b'Referrer-Policy', b'strict-origin-when-cross-origin'), (b'X-XSS-Protection', b'1; mode=block')])
2026-05-03 09:38:17,055 - httpx - INFO - HTTP Request: POST https://client.doiteasy.net/includes/api.php "HTTP/1.1 403 Forbidden"
2026-05-03 09:38:17,055 - httpcore.http11 - DEBUG - receive_response_body.started request=<Request [b'POST']>
2026-05-03 09:38:17,056 - httpcore.http11 - DEBUG - receive_response_body.complete
2026-05-03 09:38:17,056 - httpcore.http11 - DEBUG - response_closed.started
2026-05-03 09:38:17,056 - httpcore.http11 - DEBUG - response_closed.complete
2026-05-03 09:38:17,057 - httpcore.connection - DEBUG - close.started
2026-05-03 09:38:17,057 - httpcore.connection - DEBUG - close.complete
2026-05-03 09:38:17,057 - services.whmcs - ERROR - WHMCS API returned HTTP 403 for action GetOrders (cf-ray=None server=nginx): {"result":"error","message":"Invalid IP 103.234.62.206"}
2026-05-03 09:38:17,057 - services.whmcs - WARNING - call_whmcs_safe: swallowing WHMCS error for action GetOrders: Billing system rejected the request: Invalid IP 103.234.62.206. Please contact the administrator to whitelist the portal's outbound IP in the WHMCS API IP access list.
2026-05-03 09:38:17,081 - httpcore.connection - DEBUG - connect_tcp.started host='client.doiteasy.net' port=443 local_address=None timeout=10.0 socket_options=None
2026-05-03 09:38:17,422 - httpcore.connection - DEBUG - connect_tcp.complete return_value=<httpcore._backends.anyio.AnyIOStream object at 0x7f962bc38910>
2026-05-03 09:38:17,422 - httpcore.connection - DEBUG - start_tls.started ssl_context=<ssl.SSLContext object at 0x7f962bc76ac0> server_hostname='client.doiteasy.net' timeout=10.0
2026-05-03 09:38:17,598 - httpcore.connection - DEBUG - start_tls.complete return_value=<httpcore._backends.anyio.AnyIOStream object at 0x7f962bc8f460>
2026-05-03 09:38:17,599 - httpcore.http11 - DEBUG - send_request_headers.started request=<Request [b'POST']>
2026-05-03 09:38:17,599 - httpcore.http11 - DEBUG - send_request_headers.complete
2026-05-03 09:38:17,599 - httpcore.http11 - DEBUG - send_request_body.started request=<Request [b'POST']>
2026-05-03 09:38:17,600 - httpcore.http11 - DEBUG - send_request_body.complete
2026-05-03 09:38:17,600 - httpcore.http11 - DEBUG - receive_response_headers.started request=<Request [b'POST']>
2026-05-03 09:38:17,893 - httpcore.http11 - DEBUG - receive_response_headers.complete return_value=(b'HTTP/1.1', 403, b'Forbidden', [(b'Server', b'nginx'), (b'Date', b'Sun, 03 May 2026 16:38:17 GMT'), (b'Content-Type', b'application/json'), (b'Transfer-Encoding', b'chunked'), (b'Connection', b'keep-alive'), (b'Expires', b'Thu, 19 Nov 1981 08:52:00 GMT'), (b'Cache-Control', b'no-store, no-cache, must-revalidate'), (b'Pragma', b'no-cache'), (b'Set-Cookie', b'WHMCShaXcqDDHD9SP=1ac2151a8a3a9bfa91730f61ec7ed127; path=/; secure; HttpOnly'), (b'X-Content-Type-Options', b'nosniff'), (b'X-Frame-Options', b'SAMEORIGIN'), (b'Referrer-Policy', b'strict-origin-when-cross-origin'), (b'X-XSS-Protection', b'1; mode=block')])
2026-05-03 09:38:17,894 - httpx - INFO - HTTP Request: POST https://client.doiteasy.net/includes/api.php "HTTP/1.1 403 Forbidden"
2026-05-03 09:38:17,894 - httpcore.http11 - DEBUG - receive_response_body.started request=<Request [b'POST']>
2026-05-03 09:38:17,894 - httpcore.http11 - DEBUG - receive_response_body.complete
2026-05-03 09:38:17,895 - httpcore.http11 - DEBUG - response_closed.started
2026-05-03 09:38:17,895 - httpcore.http11 - DEBUG - response_closed.complete
2026-05-03 09:38:17,895 - httpcore.connection - DEBUG - close.started
2026-05-03 09:38:17,895 - httpcore.connection - DEBUG - close.complete
2026-05-03 09:38:17,895 - services.whmcs - ERROR - WHMCS API returned HTTP 403 for action GetTickets (cf-ray=None server=nginx): {"result":"error","message":"Invalid IP 103.234.62.206"}
2026-05-03 09:38:17,895 - services.whmcs - WARNING - call_whmcs_safe: swallowing WHMCS error for action GetTickets: Billing system rejected the request: Invalid IP 103.234.62.206. Please contact the administrator to whitelist the portal's outbound IP in the WHMCS API IP access list.
2026-05-03 09:38:17,921 - httpcore.connection - DEBUG - connect_tcp.started host='client.doiteasy.net' port=443 local_address=None timeout=10.0 socket_options=None
2026-05-03 09:38:18,097 - httpcore.connection - DEBUG - connect_tcp.complete return_value=<httpcore._backends.anyio.AnyIOStream object at 0x7f96298729e0>
2026-05-03 09:38:18,097 - httpcore.connection - DEBUG - start_tls.started ssl_context=<ssl.SSLContext object at 0x7f962bc76540> server_hostname='client.doiteasy.net' timeout=10.0
2026-05-03 09:38:18,273 - httpcore.connection - DEBUG - start_tls.complete return_value=<httpcore._backends.anyio.AnyIOStream object at 0x7f9629ad8a00>
2026-05-03 09:38:18,274 - httpcore.http11 - DEBUG - send_request_headers.started request=<Request [b'POST']>
2026-05-03 09:38:18,274 - httpcore.http11 - DEBUG - send_request_headers.complete
2026-05-03 09:38:18,275 - httpcore.http11 - DEBUG - send_request_body.started request=<Request [b'POST']>
2026-05-03 09:38:18,276 - httpcore.http11 - DEBUG - send_request_body.complete
2026-05-03 09:38:18,276 - httpcore.http11 - DEBUG - receive_response_headers.started request=<Request [b'POST']>
2026-05-03 09:38:18,579 - httpcore.http11 - DEBUG - receive_response_headers.complete return_value=(b'HTTP/1.1', 403, b'Forbidden', [(b'Server', b'nginx'), (b'Date', b'Sun, 03 May 2026 16:38:18 GMT'), (b'Content-Type', b'application/json'), (b'Transfer-Encoding', b'chunked'), (b'Connection', b'keep-alive'), (b'Expires', b'Thu, 19 Nov 1981 08:52:00 GMT'), (b'Cache-Control', b'no-store, no-cache, must-revalidate'), (b'Pragma', b'no-cache'), (b'Set-Cookie', b'WHMCShaXcqDDHD9SP=0c7a01ab7824e4b4267d731e7aa14f24; path=/; secure; HttpOnly'), (b'X-Content-Type-Options', b'nosniff'), (b'X-Frame-Options', b'SAMEORIGIN'), (b'Referrer-Policy', b'strict-origin-when-cross-origin'), (b'X-XSS-Protection', b'1; mode=block')])
2026-05-03 09:38:18,580 - httpx - INFO - HTTP Request: POST https://client.doiteasy.net/includes/api.php "HTTP/1.1 403 Forbidden"
2026-05-03 09:38:18,580 - httpcore.http11 - DEBUG - receive_response_body.started request=<Request [b'POST']>
2026-05-03 09:38:18,580 - httpcore.http11 - DEBUG - receive_response_body.complete
2026-05-03 09:38:18,581 - httpcore.http11 - DEBUG - response_closed.started
2026-05-03 09:38:18,581 - httpcore.http11 - DEBUG - response_closed.complete
2026-05-03 09:38:18,581 - httpcore.connection - DEBUG - close.started
2026-05-03 09:38:18,581 - httpcore.connection - DEBUG - close.complete
2026-05-03 09:38:18,582 - services.whmcs - ERROR - WHMCS API returned HTTP 403 for action GetInvoices (cf-ray=None server=nginx): {"result":"error","message":"Invalid IP 103.234.62.206"}
2026-05-03 09:38:18,582 - services.whmcs - WARNING - call_whmcs_safe: swallowing WHMCS error for action GetInvoices: Billing system rejected the request: Invalid IP 103.234.62.206. Please contact the administrator to whitelist the portal's outbound IP in the WHMCS API IP access list.
2026-05-03 09:38:18,608 - httpcore.connection - DEBUG - connect_tcp.started host='client.doiteasy.net' port=443 local_address=None timeout=10.0 socket_options=None
2026-05-03 09:38:18,782 - httpcore.connection - DEBUG - connect_tcp.complete return_value=<httpcore._backends.anyio.AnyIOStream object at 0x7f9629873fd0>
2026-05-03 09:38:18,782 - httpcore.connection - DEBUG - start_tls.started ssl_context=<ssl.SSLContext object at 0x7f9629bba440> server_hostname='client.doiteasy.net' timeout=10.0
2026-05-03 09:38:18,960 - httpcore.connection - DEBUG - start_tls.complete return_value=<httpcore._backends.anyio.AnyIOStream object at 0x7f962bc381c0>
2026-05-03 09:38:18,961 - httpcore.http11 - DEBUG - send_request_headers.started request=<Request [b'POST']>
2026-05-03 09:38:18,961 - httpcore.http11 - DEBUG - send_request_headers.complete
2026-05-03 09:38:18,961 - httpcore.http11 - DEBUG - send_request_body.started request=<Request [b'POST']>
2026-05-03 09:38:18,962 - httpcore.http11 - DEBUG - send_request_body.complete
2026-05-03 09:38:18,962 - httpcore.http11 - DEBUG - receive_response_headers.started request=<Request [b'POST']>
2026-05-03 09:38:19,287 - httpcore.http11 - DEBUG - receive_response_headers.complete return_value=(b'HTTP/1.1', 403, b'Forbidden', [(b'Server', b'nginx'), (b'Date', b'Sun, 03 May 2026 16:38:19 GMT'), (b'Content-Type', b'application/json'), (b'Transfer-Encoding', b'chunked'), (b'Connection', b'keep-alive'), (b'Expires', b'Thu, 19 Nov 1981 08:52:00 GMT'), (b'Cache-Control', b'no-store, no-cache, must-revalidate'), (b'Pragma', b'no-cache'), (b'Set-Cookie', b'WHMCShaXcqDDHD9SP=9d39582976e6982d1670b3a4e99203fd; path=/; secure; HttpOnly'), (b'X-Content-Type-Options', b'nosniff'), (b'X-Frame-Options', b'SAMEORIGIN'), (b'Referrer-Policy', b'strict-origin-when-cross-origin'), (b'X-XSS-Protection', b'1; mode=block')])
2026-05-03 09:38:19,288 - httpx - INFO - HTTP Request: POST https://client.doiteasy.net/includes/api.php "HTTP/1.1 403 Forbidden"
2026-05-03 09:38:19,288 - httpcore.http11 - DEBUG - receive_response_body.started request=<Request [b'POST']>
2026-05-03 09:38:19,288 - httpcore.http11 - DEBUG - receive_response_body.complete
2026-05-03 09:38:19,289 - httpcore.http11 - DEBUG - response_closed.started
2026-05-03 09:38:19,289 - httpcore.http11 - DEBUG - response_closed.complete
2026-05-03 09:38:19,289 - httpcore.connection - DEBUG - close.started
2026-05-03 09:38:19,289 - httpcore.connection - DEBUG - close.complete
2026-05-03 09:38:19,289 - services.whmcs - ERROR - WHMCS API returned HTTP 403 for action GetProducts (cf-ray=None server=nginx): {"result":"error","message":"Invalid IP 103.234.62.206"}
2026-05-03 09:38:19,290 - services.whmcs - WARNING - call_whmcs_safe: swallowing WHMCS error for action GetProducts: Billing system rejected the request: Invalid IP 103.234.62.206. Please contact the administrator to whitelist the portal's outbound IP in the WHMCS API IP access list.
2026-05-03 09:38:19,290 - core.database - DEBUG - [DB_OP] Database session cleanup after 4.3753s
2026-05-03 09:38:21,031 - core.database - INFO - Tables initialized successfully
2026-05-03 09:38:21,031 - core.database - DEBUG - [DB_OP] Create tables completed in 6.7221s
2026-05-03 09:38:21,095 - core.database - INFO - Lazy database initialization completed successfully
2026-05-03 09:38:21,095 - core.database - DEBUG - [DB_OP] Database session created successfully in 6.8453s
2026-05-03 09:38:21,478 - core.database - DEBUG - [DB_OP] Database session cleanup after 7.2285s
2026-05-03 09:38:22,572 - core.database - DEBUG - [DB_OP] Starting get_db session creation
2026-05-03 09:38:22,572 - core.database - DEBUG - [DB_OP] Database session created successfully in 0.0005s
2026-05-03 09:38:23,008 - core.database - DEBUG - [DB_OP] Database session cleanup after 0.4368s
2026-05-03 09:38:33,306 - core.database - DEBUG - [DB_OP] Starting get_db session creation
2026-05-03 09:38:33,306 - core.database - DEBUG - [DB_OP] Database session created successfully in 0.0004s
2026-05-03 09:38:33,686 - core.database - DEBUG - [DB_OP] Database session cleanup after 0.3797s
2026-05-03 09:38:42,147 - services.database - DEBUG - [DB_OP] Starting database close
2026-05-03 09:38:42,413 - core.database - INFO - Database connection closed and engine disposed
2026-05-03 09:38:42,413 - services.database - INFO - Database connections closed
2026-05-03 09:38:42,413 - services.database - DEBUG - [DB_OP] Database close completed in 0.2665s
