2026-05-03 05:15:26,609 - main - INFO - === Logging system initialized ===
2026-05-03 05:15:26,609 - main - INFO - Log file: logs/app_20260503_051526.log
2026-05-03 05:15:26,609 - main - INFO - Log level: INFO
2026-05-03 05:15:26,610 - main - INFO - Timestamp: 20260503_051526
2026-05-03 05:15:26,678 - main - INFO - Included router: routers.admin_dashboard.router
2026-05-03 05:15:26,710 - main - INFO - Included router: routers.admin_users.router
2026-05-03 05:15:26,755 - main - INFO - Included router: routers.agent_availability.router
2026-05-03 05:15:27,563 - main - INFO - Included router: routers.ai_ticket_summary.router
2026-05-03 05:15:27,583 - main - INFO - Included router: routers.aihub.router
2026-05-03 05:15:27,624 - main - INFO - Included router: routers.api_hub.router
2026-05-03 05:15:27,638 - main - INFO - Included router: routers.audit_log.router
2026-05-03 05:15:27,647 - main - INFO - Included router: routers.auth.router
2026-05-03 05:15:27,662 - main - INFO - Included router: routers.cache_settings.router
2026-05-03 05:15:27,703 - main - INFO - Included router: routers.carts.router
2026-05-03 05:15:27,750 - main - INFO - Included router: routers.chat_analytics_daily.router
2026-05-03 05:15:27,792 - main - INFO - Included router: routers.chat_attachments.router
2026-05-03 05:15:27,918 - main - INFO - Included router: routers.chat_branding.router
2026-05-03 05:15:27,931 - main - INFO - Included router: routers.chat_branding_api.router
2026-05-03 05:15:27,979 - main - INFO - Included router: routers.chat_conversations.router
2026-05-03 05:15:28,019 - main - INFO - Included router: routers.chat_messages.router
2026-05-03 05:15:28,068 - main - INFO - Included router: routers.chat_routing_rules.router
2026-05-03 05:15:28,088 - main - INFO - Included router: routers.contact.router
2026-05-03 05:15:28,129 - main - INFO - Included router: routers.contact_inquiries.router
2026-05-03 05:15:28,174 - main - INFO - Included router: routers.ecom_checkout.router
2026-05-03 05:15:28,176 - main - INFO - Included router: routers.health.router
2026-05-03 05:15:28,219 - main - INFO - Included router: routers.kb_article_feedback.router
2026-05-03 05:15:28,264 - main - INFO - Included router: routers.kb_articles.router
2026-05-03 05:15:28,283 - main - INFO - Included router: routers.local_auth.router
2026-05-03 05:15:28,314 - main - INFO - Included router: routers.mfa.router
2026-05-03 05:15:28,357 - main - INFO - Included router: routers.notification_preferences.router
2026-05-03 05:15:28,404 - main - INFO - Included router: routers.notifications.router
2026-05-03 05:15:28,411 - main - INFO - Included router: routers.notifications_extras.router
2026-05-03 05:15:28,593 - main - INFO - Included router: routers.oauth.router
2026-05-03 05:15:28,641 - main - INFO - Included router: routers.order_items.router
2026-05-03 05:15:28,691 - main - INFO - Included router: routers.orders.router
2026-05-03 05:15:28,697 - main - INFO - Included router: routers.password_reset.router
2026-05-03 05:15:28,741 - main - INFO - Included router: routers.plans.router
2026-05-03 05:15:28,779 - main - INFO - Included router: routers.product_categories.router
2026-05-03 05:15:28,820 - main - INFO - Included router: routers.product_reviews.router
2026-05-03 05:15:28,870 - main - INFO - Included router: routers.products.router
2026-05-03 05:15:28,890 - main - INFO - Included router: routers.role_management.router
2026-05-03 05:15:28,931 - main - INFO - Included router: routers.service_testimonials.router
2026-05-03 05:15:28,951 - main - INFO - Included router: routers.settings.router
2026-05-03 05:15:28,986 - main - INFO - Included router: routers.site_settings.router
2026-05-03 05:15:29,052 - main - INFO - Included router: routers.smtp_settings.router
2026-05-03 05:15:29,088 - main - INFO - Included router: routers.storage.router
2026-05-03 05:15:29,304 - main - INFO - Included router: routers.support_chat.router
2026-05-03 05:15:29,339 - main - INFO - Included router: routers.support_departments.router
2026-05-03 05:15:29,378 - main - INFO - Included router: routers.support_seats.router
2026-05-03 05:15:29,387 - main - INFO - Included router: routers.ticket_notifications_sync.router
2026-05-03 05:15:29,426 - main - INFO - Included router: routers.ticket_summaries.router
2026-05-03 05:15:29,467 - main - INFO - Included router: routers.ticket_sync_states.router
2026-05-03 05:15:30,032 - main - INFO - Included router: routers.uptimerobot_admin.router
2026-05-03 05:15:30,059 - main - INFO - Included router: routers.user.router
2026-05-03 05:15:30,107 - main - INFO - Included router: routers.user_profiles.router
2026-05-03 05:15:30,148 - main - INFO - Included router: routers.user_roles.router
2026-05-03 05:15:30,240 - main - INFO - Included router: routers.visitor_monitor.router
2026-05-03 05:15:30,250 - main - INFO - Included router: routers.visitor_tracking.router
2026-05-03 05:15:30,267 - main - INFO - Included router: routers.whmcs.router
2026-05-03 05:15:30,328 - main - INFO - Included router: routers.whmcs_admin.router
2026-05-03 05:15:30,366 - main - INFO - Included router: routers.whmcs_extra.router
2026-05-03 05:15:30,367 - main - INFO - === Application startup initiated ===
2026-05-03 05:15:30,367 - services.database - INFO - Ignore creating tables
2026-05-03 05:15:30,367 - services.mock_data - INFO - Ignore initialize data
2026-05-03 05:15:30,368 - services.auth - INFO - Ignore initialize admin
2026-05-03 05:15:30,368 - main - INFO - === Application startup completed successfully ===
2026-05-03 05:15:30,373 - core.config - DEBUG - Read dynamic attribute jwt_secret_key from environment variable JWT_SECRET_KEY
2026-05-03 05:15:30,374 - core.config - DEBUG - Read dynamic attribute jwt_algorithm from environment variable JWT_ALGORITHM
2026-05-03 05:15:30,381 - core.auth - DEBUG - Authentication token validated for user hash: f8ef80bf
2026-05-03 05:15:30,685 - core.auth - DEBUG - Authentication token validated for user hash: f8ef80bf
2026-05-03 05:15:30,686 - core.database - DEBUG - [DB_OP] Starting get_db session creation
2026-05-03 05:15:30,686 - core.database - WARNING - Database session maker not available, attempting lazy initialization...
2026-05-03 05:15:30,686 - core.database - WARNING - Database not initialized, attempting lazy initialization...
2026-05-03 05:15:30,686 - core.database - INFO - Starting database initialization...
2026-05-03 05:15:30,687 - core.config - DEBUG - Read dynamic attribute database_url from environment variable DATABASE_URL
2026-05-03 05:15:30,687 - core.database - INFO - Normalizing database URL for async compatibility...
2026-05-03 05:15:30,688 - core.database - INFO - Creating async database engine...
2026-05-03 05:15:30,689 - core.database - INFO - Using QueuePool with connection pooling for non-Lambda environment
2026-05-03 05:15:30,898 - core.database - INFO - Database engine created successfully
2026-05-03 05:15:30,898 - core.database - INFO - Creating async session maker...
2026-05-03 05:15:30,898 - core.database - INFO - Async session maker created successfully
2026-05-03 05:15:30,898 - core.database - INFO - Database connection initialized successfully
2026-05-03 05:15:30,899 - core.database - DEBUG - [DB_OP] Starting create_tables
2026-05-03 05:15:30,899 - core.database - INFO - 🔧 Starting table creation...
2026-05-03 05:15:30,910 - core.auth - DEBUG - Authentication token validated for user hash: f8ef80bf
2026-05-03 05:15:30,910 - core.database - DEBUG - [DB_OP] Starting get_db session creation
2026-05-03 05:15:30,910 - core.database - DEBUG - [DB_OP] Database session created successfully in 0.0002s
2026-05-03 05:15:31,004 - httpcore.connection - DEBUG - connect_tcp.started host='client.doiteasy.net' port=443 local_address=None timeout=10.0 socket_options=None
2026-05-03 05:15:31,188 - httpcore.connection - DEBUG - connect_tcp.complete return_value=<httpcore._backends.anyio.AnyIOStream object at 0x7fc7c4310b80>
2026-05-03 05:15:31,188 - httpcore.connection - DEBUG - start_tls.started ssl_context=<ssl.SSLContext object at 0x7fc7c430fd40> server_hostname='client.doiteasy.net' timeout=10.0
2026-05-03 05:15:31,370 - httpcore.connection - DEBUG - start_tls.complete return_value=<httpcore._backends.anyio.AnyIOStream object at 0x7fc7c21f5090>
2026-05-03 05:15:31,371 - httpcore.http11 - DEBUG - send_request_headers.started request=<Request [b'POST']>
2026-05-03 05:15:31,371 - httpcore.http11 - DEBUG - send_request_headers.complete
2026-05-03 05:15:31,371 - httpcore.http11 - DEBUG - send_request_body.started request=<Request [b'POST']>
2026-05-03 05:15:31,372 - httpcore.http11 - DEBUG - send_request_body.complete
2026-05-03 05:15:31,372 - httpcore.http11 - DEBUG - receive_response_headers.started request=<Request [b'POST']>
2026-05-03 05:15:31,674 - 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 12:15:31 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=a9922ddf553d1059eb27298816551a31; 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 05:15:31,675 - httpx - INFO - HTTP Request: POST https://client.doiteasy.net/includes/api.php "HTTP/1.1 403 Forbidden"
2026-05-03 05:15:31,675 - httpcore.http11 - DEBUG - receive_response_body.started request=<Request [b'POST']>
2026-05-03 05:15:31,675 - httpcore.http11 - DEBUG - receive_response_body.complete
2026-05-03 05:15:31,675 - httpcore.http11 - DEBUG - response_closed.started
2026-05-03 05:15:31,675 - httpcore.http11 - DEBUG - response_closed.complete
2026-05-03 05:15:31,676 - httpcore.connection - DEBUG - close.started
2026-05-03 05:15:31,676 - httpcore.connection - DEBUG - close.complete
2026-05-03 05:15:31,676 - services.whmcs - ERROR - WHMCS API returned HTTP 403 for action GetClients (cf-ray=None server=nginx): {"result":"error","message":"Invalid IP 103.234.62.212"}
2026-05-03 05:15:31,677 - services.whmcs - WARNING - call_whmcs_safe: swallowing WHMCS error for action GetClients: Billing system rejected the request: Invalid IP 103.234.62.212. Please contact the administrator to whitelist the portal's outbound IP in the WHMCS API IP access list.
2026-05-03 05:15:31,741 - httpcore.connection - DEBUG - connect_tcp.started host='client.doiteasy.net' port=443 local_address=None timeout=10.0 socket_options=None
2026-05-03 05:15:32,084 - httpcore.connection - DEBUG - connect_tcp.complete return_value=<httpcore._backends.anyio.AnyIOStream object at 0x7fc7c219ff40>
2026-05-03 05:15:32,084 - httpcore.connection - DEBUG - start_tls.started ssl_context=<ssl.SSLContext object at 0x7fc7c430fd40> server_hostname='client.doiteasy.net' timeout=10.0
2026-05-03 05:15:32,266 - httpcore.connection - DEBUG - start_tls.complete return_value=<httpcore._backends.anyio.AnyIOStream object at 0x7fc7c43b7c70>
2026-05-03 05:15:32,266 - httpcore.http11 - DEBUG - send_request_headers.started request=<Request [b'POST']>
2026-05-03 05:15:32,267 - httpcore.http11 - DEBUG - send_request_headers.complete
2026-05-03 05:15:32,268 - httpcore.http11 - DEBUG - send_request_body.started request=<Request [b'POST']>
2026-05-03 05:15:32,268 - httpcore.http11 - DEBUG - send_request_body.complete
2026-05-03 05:15:32,268 - httpcore.http11 - DEBUG - receive_response_headers.started request=<Request [b'POST']>
2026-05-03 05:15:32,601 - 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 12:15:32 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=dc9e2d53285816b324dd86a54acf1c6f; 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 05:15:32,601 - httpx - INFO - HTTP Request: POST https://client.doiteasy.net/includes/api.php "HTTP/1.1 403 Forbidden"
2026-05-03 05:15:32,602 - httpcore.http11 - DEBUG - receive_response_body.started request=<Request [b'POST']>
2026-05-03 05:15:32,602 - httpcore.http11 - DEBUG - receive_response_body.complete
2026-05-03 05:15:32,602 - httpcore.http11 - DEBUG - response_closed.started
2026-05-03 05:15:32,602 - httpcore.http11 - DEBUG - response_closed.complete
2026-05-03 05:15:32,602 - httpcore.connection - DEBUG - close.started
2026-05-03 05:15:32,603 - httpcore.connection - DEBUG - close.complete
2026-05-03 05:15:32,603 - services.whmcs - ERROR - WHMCS API returned HTTP 403 for action GetOrders (cf-ray=None server=nginx): {"result":"error","message":"Invalid IP 103.234.62.212"}
2026-05-03 05:15:32,603 - services.whmcs - WARNING - call_whmcs_safe: swallowing WHMCS error for action GetOrders: Billing system rejected the request: Invalid IP 103.234.62.212. Please contact the administrator to whitelist the portal's outbound IP in the WHMCS API IP access list.
2026-05-03 05:15:32,626 - httpcore.connection - DEBUG - connect_tcp.started host='client.doiteasy.net' port=443 local_address=None timeout=10.0 socket_options=None
2026-05-03 05:15:32,803 - httpcore.connection - DEBUG - connect_tcp.complete return_value=<httpcore._backends.anyio.AnyIOStream object at 0x7fc7c1fd6620>
2026-05-03 05:15:32,803 - httpcore.connection - DEBUG - start_tls.started ssl_context=<ssl.SSLContext object at 0x7fc7c43c3540> server_hostname='client.doiteasy.net' timeout=10.0
2026-05-03 05:15:32,980 - httpcore.connection - DEBUG - start_tls.complete return_value=<httpcore._backends.anyio.AnyIOStream object at 0x7fc7c21f5990>
2026-05-03 05:15:32,981 - httpcore.http11 - DEBUG - send_request_headers.started request=<Request [b'POST']>
2026-05-03 05:15:32,981 - httpcore.http11 - DEBUG - send_request_headers.complete
2026-05-03 05:15:32,981 - httpcore.http11 - DEBUG - send_request_body.started request=<Request [b'POST']>
2026-05-03 05:15:32,982 - httpcore.http11 - DEBUG - send_request_body.complete
2026-05-03 05:15:32,982 - httpcore.http11 - DEBUG - receive_response_headers.started request=<Request [b'POST']>
2026-05-03 05:15:33,284 - 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 12:15:33 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=b8cb184ecea00098aa27728ff5a0b155; 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 05:15:33,285 - httpx - INFO - HTTP Request: POST https://client.doiteasy.net/includes/api.php "HTTP/1.1 403 Forbidden"
2026-05-03 05:15:33,285 - httpcore.http11 - DEBUG - receive_response_body.started request=<Request [b'POST']>
2026-05-03 05:15:33,285 - httpcore.http11 - DEBUG - receive_response_body.complete
2026-05-03 05:15:33,285 - httpcore.http11 - DEBUG - response_closed.started
2026-05-03 05:15:33,286 - httpcore.http11 - DEBUG - response_closed.complete
2026-05-03 05:15:33,286 - httpcore.connection - DEBUG - close.started
2026-05-03 05:15:33,286 - httpcore.connection - DEBUG - close.complete
2026-05-03 05:15:33,286 - services.whmcs - ERROR - WHMCS API returned HTTP 403 for action GetTickets (cf-ray=None server=nginx): {"result":"error","message":"Invalid IP 103.234.62.212"}
2026-05-03 05:15:33,286 - services.whmcs - WARNING - call_whmcs_safe: swallowing WHMCS error for action GetTickets: Billing system rejected the request: Invalid IP 103.234.62.212. Please contact the administrator to whitelist the portal's outbound IP in the WHMCS API IP access list.
2026-05-03 05:15:33,327 - httpcore.connection - DEBUG - connect_tcp.started host='client.doiteasy.net' port=443 local_address=None timeout=10.0 socket_options=None
2026-05-03 05:15:33,675 - httpcore.connection - DEBUG - connect_tcp.complete return_value=<httpcore._backends.anyio.AnyIOStream object at 0x7fc7c2024f40>
2026-05-03 05:15:33,675 - httpcore.connection - DEBUG - start_tls.started ssl_context=<ssl.SSLContext object at 0x7fc7c43c2840> server_hostname='client.doiteasy.net' timeout=10.0
2026-05-03 05:15:33,856 - httpcore.connection - DEBUG - start_tls.complete return_value=<httpcore._backends.anyio.AnyIOStream object at 0x7fc7c2239540>
2026-05-03 05:15:33,856 - httpcore.http11 - DEBUG - send_request_headers.started request=<Request [b'POST']>
2026-05-03 05:15:33,857 - httpcore.http11 - DEBUG - send_request_headers.complete
2026-05-03 05:15:33,857 - httpcore.http11 - DEBUG - send_request_body.started request=<Request [b'POST']>
2026-05-03 05:15:33,857 - httpcore.http11 - DEBUG - send_request_body.complete
2026-05-03 05:15:33,857 - httpcore.http11 - DEBUG - receive_response_headers.started request=<Request [b'POST']>
2026-05-03 05:15:34,190 - 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 12:15:34 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=7777c1dcac8516b12357975336a47e99; 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 05:15:34,190 - httpx - INFO - HTTP Request: POST https://client.doiteasy.net/includes/api.php "HTTP/1.1 403 Forbidden"
2026-05-03 05:15:34,191 - httpcore.http11 - DEBUG - receive_response_body.started request=<Request [b'POST']>
2026-05-03 05:15:34,191 - httpcore.http11 - DEBUG - receive_response_body.complete
2026-05-03 05:15:34,191 - httpcore.http11 - DEBUG - response_closed.started
2026-05-03 05:15:34,191 - httpcore.http11 - DEBUG - response_closed.complete
2026-05-03 05:15:34,192 - httpcore.connection - DEBUG - close.started
2026-05-03 05:15:34,192 - httpcore.connection - DEBUG - close.complete
2026-05-03 05:15:34,192 - services.whmcs - ERROR - WHMCS API returned HTTP 403 for action GetInvoices (cf-ray=None server=nginx): {"result":"error","message":"Invalid IP 103.234.62.212"}
2026-05-03 05:15:34,192 - services.whmcs - WARNING - call_whmcs_safe: swallowing WHMCS error for action GetInvoices: Billing system rejected the request: Invalid IP 103.234.62.212. Please contact the administrator to whitelist the portal's outbound IP in the WHMCS API IP access list.
2026-05-03 05:15:34,215 - httpcore.connection - DEBUG - connect_tcp.started host='client.doiteasy.net' port=443 local_address=None timeout=10.0 socket_options=None
2026-05-03 05:15:34,389 - httpcore.connection - DEBUG - connect_tcp.complete return_value=<httpcore._backends.anyio.AnyIOStream object at 0x7fc7c20265c0>
2026-05-03 05:15:34,390 - httpcore.connection - DEBUG - start_tls.started ssl_context=<ssl.SSLContext object at 0x7fc7c43c3640> server_hostname='client.doiteasy.net' timeout=10.0
2026-05-03 05:15:34,568 - httpcore.connection - DEBUG - start_tls.complete return_value=<httpcore._backends.anyio.AnyIOStream object at 0x7fc7c4312800>
2026-05-03 05:15:34,569 - httpcore.http11 - DEBUG - send_request_headers.started request=<Request [b'POST']>
2026-05-03 05:15:34,570 - httpcore.http11 - DEBUG - send_request_headers.complete
2026-05-03 05:15:34,570 - httpcore.http11 - DEBUG - send_request_body.started request=<Request [b'POST']>
2026-05-03 05:15:34,570 - httpcore.http11 - DEBUG - send_request_body.complete
2026-05-03 05:15:34,570 - httpcore.http11 - DEBUG - receive_response_headers.started request=<Request [b'POST']>
2026-05-03 05:15:34,642 - core.database - DEBUG - [DB_OP] Starting get_db session creation
2026-05-03 05:15:34,643 - core.database - DEBUG - [DB_OP] Database session created successfully in 0.0004s
2026-05-03 05:15:34,643 - routers.products - DEBUG - Querying productss: query={}, sort=-id, skip=0, limit=500, fields=None
2026-05-03 05:15:34,652 - core.database - DEBUG - [DB_OP] Starting get_db session creation
2026-05-03 05:15:34,652 - core.database - DEBUG - [DB_OP] Database session created successfully in 0.0004s
2026-05-03 05:15:34,653 - routers.product_categories - DEBUG - Querying product_categoriess: query={}, sort=sort_order, skip=0, limit=200, fields=None
2026-05-03 05:15:34,897 - 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 12:15:34 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=00f3a894b0241ec60f64c15164e51cef; 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 05:15:34,897 - httpx - INFO - HTTP Request: POST https://client.doiteasy.net/includes/api.php "HTTP/1.1 403 Forbidden"
2026-05-03 05:15:34,898 - httpcore.http11 - DEBUG - receive_response_body.started request=<Request [b'POST']>
2026-05-03 05:15:34,898 - httpcore.http11 - DEBUG - receive_response_body.complete
2026-05-03 05:15:34,898 - httpcore.http11 - DEBUG - response_closed.started
2026-05-03 05:15:34,898 - httpcore.http11 - DEBUG - response_closed.complete
2026-05-03 05:15:34,898 - httpcore.connection - DEBUG - close.started
2026-05-03 05:15:34,899 - httpcore.connection - DEBUG - close.complete
2026-05-03 05:15:34,899 - services.whmcs - ERROR - WHMCS API returned HTTP 403 for action GetProducts (cf-ray=None server=nginx): {"result":"error","message":"Invalid IP 103.234.62.212"}
2026-05-03 05:15:34,899 - services.whmcs - WARNING - call_whmcs_safe: swallowing WHMCS error for action GetProducts: Billing system rejected the request: Invalid IP 103.234.62.212. Please contact the administrator to whitelist the portal's outbound IP in the WHMCS API IP access list.
2026-05-03 05:15:34,899 - core.database - DEBUG - [DB_OP] Database session cleanup after 3.9891s
2026-05-03 05:15:35,237 - routers.products - DEBUG - Found 8 productss
2026-05-03 05:15:35,238 - core.database - DEBUG - [DB_OP] Database session cleanup after 0.5957s
2026-05-03 05:15:35,390 - routers.product_categories - DEBUG - Found 5 product_categoriess
2026-05-03 05:15:35,391 - core.database - DEBUG - [DB_OP] Database session cleanup after 0.7391s
2026-05-03 05:15:39,464 - core.database - INFO - Tables initialized successfully
2026-05-03 05:15:39,465 - core.database - DEBUG - [DB_OP] Create tables completed in 8.5660s
2026-05-03 05:15:39,530 - core.database - INFO - Lazy database initialization completed successfully
2026-05-03 05:15:39,531 - core.database - DEBUG - [DB_OP] Database session created successfully in 8.8449s
2026-05-03 05:15:39,972 - core.database - DEBUG - [DB_OP] Database session cleanup after 9.2858s
2026-05-03 05:15:45,138 - core.auth - DEBUG - Authentication token validated for user hash: f8ef80bf
2026-05-03 05:15:45,139 - core.database - DEBUG - [DB_OP] Starting get_db session creation
2026-05-03 05:15:45,139 - core.database - DEBUG - [DB_OP] Database session created successfully in 0.0002s
2026-05-03 05:15:45,141 - core.auth - DEBUG - Authentication token validated for user hash: f8ef80bf
2026-05-03 05:15:45,141 - core.database - DEBUG - [DB_OP] Starting get_db session creation
2026-05-03 05:15:45,141 - core.database - DEBUG - [DB_OP] Database session created successfully in 0.0001s
2026-05-03 05:15:45,143 - core.auth - DEBUG - Authentication token validated for user hash: f8ef80bf
2026-05-03 05:15:45,643 - core.database - DEBUG - [DB_OP] Database session cleanup after 0.5041s
2026-05-03 05:15:45,775 - core.database - DEBUG - [DB_OP] Database session cleanup after 0.6335s
2026-05-03 05:15:45,927 - core.auth - DEBUG - Authentication token validated for user hash: f8ef80bf
2026-05-03 05:15:46,047 - core.auth - DEBUG - Authentication token validated for user hash: f8ef80bf
2026-05-03 05:15:46,048 - core.database - DEBUG - [DB_OP] Starting get_db session creation
2026-05-03 05:15:46,048 - core.database - DEBUG - [DB_OP] Database session created successfully in 0.0002s
2026-05-03 05:15:46,557 - core.database - DEBUG - [DB_OP] Database session cleanup after 0.5091s
2026-05-03 05:16:01,597 - core.auth - DEBUG - Authentication token validated for user hash: f8ef80bf
2026-05-03 05:16:01,597 - core.database - DEBUG - [DB_OP] Starting get_db session creation
2026-05-03 05:16:01,597 - core.database - DEBUG - [DB_OP] Database session created successfully in 0.0002s
2026-05-03 05:16:04,074 - services.sms_sender - WARNING - [sms] OTP send failed provider=none phone=+581846935 message=No SMS provider configured.
2026-05-03 05:16:04,075 - services.mfa - WARNING - [mfa] Enrollment SMS failed for user=local:ac909dee702c44deadd15985dada26dd provider=none: No SMS provider configured.
2026-05-03 05:16:04,075 - core.database - ERROR - Database session error: 502: Failed to send verification SMS: No SMS provider configured.
Traceback (most recent call last):
  File "/workspace/app/backend/routers/mfa.py", line 112, in mfa_setup
    row, _code = await start_enrollment(db, user, payload.phone_e164)
  File "/workspace/app/backend/services/mfa.py", line 170, in start_enrollment
    raise RuntimeError(f"Failed to send verification SMS: {result.message}")
RuntimeError: Failed to send verification SMS: No SMS provider configured.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/workspace/app/backend/core/database.py", line 602, in get_db
    yield session
  File "/data/chats/99daa102ba1446f6aa2f99771f457055/.cache/python/lib/python3.10/site-packages/fastapi/routing.py", line 120, in app
    response = await f(request)
  File "/data/chats/99daa102ba1446f6aa2f99771f457055/.cache/python/lib/python3.10/site-packages/fastapi/routing.py", line 674, in app
    raw_response = await run_endpoint_function(
  File "/data/chats/99daa102ba1446f6aa2f99771f457055/.cache/python/lib/python3.10/site-packages/fastapi/routing.py", line 328, in run_endpoint_function
    return await dependant.call(**values)
  File "/workspace/app/backend/routers/mfa.py", line 116, in mfa_setup
    raise HTTPException(status_code=status.HTTP_502_BAD_GATEWAY, detail=str(exc))
fastapi.exceptions.HTTPException: 502: Failed to send verification SMS: No SMS provider configured.
2026-05-03 05:16:04,111 - core.database - DEBUG - [DB_OP] Database session cleanup after 2.5141s
2026-05-03 05:16:04,174 - core.database - ERROR - Failed to create database session: 502: Failed to send verification SMS: No SMS provider configured.
Traceback (most recent call last):
  File "/workspace/app/backend/routers/mfa.py", line 112, in mfa_setup
    row, _code = await start_enrollment(db, user, payload.phone_e164)
  File "/workspace/app/backend/services/mfa.py", line 170, in start_enrollment
    raise RuntimeError(f"Failed to send verification SMS: {result.message}")
RuntimeError: Failed to send verification SMS: No SMS provider configured.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/workspace/app/backend/core/database.py", line 602, in get_db
    yield session
  File "/data/chats/99daa102ba1446f6aa2f99771f457055/.cache/python/lib/python3.10/site-packages/fastapi/routing.py", line 120, in app
    response = await f(request)
  File "/data/chats/99daa102ba1446f6aa2f99771f457055/.cache/python/lib/python3.10/site-packages/fastapi/routing.py", line 674, in app
    raw_response = await run_endpoint_function(
  File "/data/chats/99daa102ba1446f6aa2f99771f457055/.cache/python/lib/python3.10/site-packages/fastapi/routing.py", line 328, in run_endpoint_function
    return await dependant.call(**values)
  File "/workspace/app/backend/routers/mfa.py", line 116, in mfa_setup
    raise HTTPException(status_code=status.HTTP_502_BAD_GATEWAY, detail=str(exc))
fastapi.exceptions.HTTPException: 502: Failed to send verification SMS: No SMS provider configured.
2026-05-03 05:16:09,368 - services.database - DEBUG - [DB_OP] Starting database close
2026-05-03 05:16:09,632 - core.database - INFO - Database connection closed and engine disposed
2026-05-03 05:16:09,632 - services.database - INFO - Database connections closed
2026-05-03 05:16:09,632 - services.database - DEBUG - [DB_OP] Database close completed in 0.2639s
